JQuery: select 包含具有特定 ID 的元素的元素

JQuery: select element that contains an element with specific ID

如果这是重复的,我们深表歉意。可能是,但我已经搜索过这个特定问题,但没能找到它。

假设我有 HTML 像这样:

<tr>
  <td>
    <input id="hello">
  </td>
  <td>
    Hello
  </td>
</tr>

使用 JQuery 或 Javascript,我想 select 包含 id="hello".

输入的 <tr>

这是我目前的尝试:

var id = "hello";
var tr = $("tr:has('#" + id + "')");

但是,这既不专门搜索输入也似乎不起作用。如果您能对此有所说明,我将不胜感激。

您可以尝试通过 id 获取元素,然后 closest() 该元素的 parent 。这似乎是文档中的首选方式。请注意,每页只能有一个 id

这是一个例子和一个 link to the documentation:

var yourElement = $("#hello").closest("tr");

如果您浏览文档,您会发现实现相同结果的多种方法。希望对你有帮助。

Jasper,正如haxxxton在评论中提到的,.closest() jQuery方法是实现此目的最快最简单的方法。

$('#hello').closest('tr');
$('input[id="hello"]').closest('tr'); // more efficient method than escaping dots if say, your id attribute had periods.

看看 JQuery 的 closest() 方法 here

它向上遍历 DOM 树(从当前元素开始)直到找到与给定选择器匹配的元素。

您的案例示例:

$("#hello").closest("tr")

这可以使用 parents() 方法完成:

var tr = $('#hello').parents('tr');