jquery选择嵌套div

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

some content
my content

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

  • $('.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')是你最好的选择; 我的性能测试显示它通常是4个提案中最快的(FireFox更喜欢$('.ms-disc-bordered-noleft').find('div:eq(2)'); )。

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


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

作为内部

第二个孩子的一个选项:

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

它是父节点,您可以使用.parent().find().find()遍历向下

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

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

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

 $('.ms-disc-bordered-noleft div').find('div:last'); ^^-parent ^^-first children ^^-last div 

最直接的路线是:

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

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

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

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

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

要么

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