包含已知选择器的查找

时间:2013-11-14 10:38:00

标签: jquery html html-table

我希望通过知道其中一个元素(div)的ID来获取表的<tr>元素。

以下是HTML中的表格:

<table id="table-0">
  <thead>
  <tr role="row">
   <th>house</th>
   <th>phone</th>
  </tr>
  </thead>
 <tbody>
 <tr class="odd">
  <td class="">
    <div id="56"></div>my house
  </td>
  <td class="">
    <div id="57"></div>1234
  </td>
 </tr>
</tbody>
</table>

所以我希望得到<tr>元素,其<td>元素包含ID为56的<div>(在此示例中)。

这是我在jQuery中尝试过的(data ['id'] = 56):

 var tr = $("tr:has(td:has($(\"#\" + data['id']))))");

5 个答案:

答案 0 :(得分:3)

您还可以按元素ID找到tr:

var tr = $('#Id').closest("tr");

在你的情况下:

var tr = $('#56').closest("tr");

答案 1 :(得分:1)

var tr = $("tr:has('#" + data['id'] + "')");

N.B。:检查单个页面中的所有元素是否都有唯一ID。

答案 2 :(得分:0)

尝试

var tr = $('tr:has("td div#"'+data['id']+')');

答案 3 :(得分:0)

您可以使用以下jQuery表达式获取输出

$('tr').find('#56').closest('tr')

并且还要记住分配给HTML控件的ID在整个页面中应该是唯一的。

使用上面的表达式,您将获得tr个对象(即整个tr,并指定了id的控件)

答案 4 :(得分:0)

第一:对一个元素的更多元素使用相同的ID是完全无效的,因为ID是唯一的。它是HTML标准。

但是如果你想获得元素的选择器,可以使用它(不需要ID ):

$('tr.odd').children().children();

这是正确的方法,因为您不需要重复ID。