如何选择包含“我的内容”的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有什么关系?
答案 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