jquery选择嵌套div

时间:2013-01-10 21:54:43

标签: javascript jquery html css

如何选择包含“我的内容”的div?

<table>
  <tr>
    <td class="ms-disc-bordered-noleft">
      <div class="">
        <div>some content</div>
        <div>my content</div>
      </div>
    </td>
  </tr>
</table>

该div与td.ms-disc-bordered-noleft有什么关系?

6 个答案:

答案 0 :(得分:5)

  • $('.ms-disc-bordered-noleft div:last')
  • $('.ms-disc-bordered-noleft div:eq(2)')
  • $('.ms-disc-bordered-noleft').find('div:eq(2)');
  • $("div:contains('my content'):last");

返回机器人...我的意思是div ...你在寻找。

我觉得$('.ms-disc-bordered-noleft div:last')是你最好的选择; my performance test表明它通常是4个提案中最快的(FireFox更喜欢$('.ms-disc-bordered-noleft').find('div:eq(2)');)。

有关使用的不同选择器的示例,请参阅http://jsfiddle.net/jhfrench/cfeZU


至于问题的第二部分,该div是td.ms-disc-bordered-noleft元素的“后代”。更具体地说,它是td孩子的孩子。

答案 1 :(得分:3)

作为内部<div>的第二个孩子的一个选项:

var div = $(".ms-disc-bordered-noleft > div > div:eq(1)");

答案 2 :(得分:1)

  

如何选择包含“我的内容”的div?

$('.ms-disc-bordered-noleft').find('div').contains("my content");

如果我不太了解你的Q. ...你可以使用:

$('.ms-disc-bordered-noleft div').find('div:last');

        ^^-parent         ^^-first children  ^^-last div

答案 3 :(得分:1)

这是父节点,您可以使用.parent().children().find()

来遍历

答案 4 :(得分:1)

最直接的路线是:

var div = $("div:contains('my content'):last");

就与td的关系而言,你可以从上面开始并继续前进。

var cell = div.closest('td');

这些不一定是性能方面最快的选项,但它们是最短的代码。我喜欢简短的代码。

答案 5 :(得分:0)

.ms-disc-bordered-noleft div div:nth-child(2)

.ms-disc-bordered-noleft div div:last-child