使用jQuery選擇器,是否可以選擇不是其他選擇器元素後代的所有元素。選擇不是指定元素的後代的所有元素
例如,我想選擇所有的a
標籤,它們是而不是標籤的後裔th
標籤。我可以看到做是正確的,現在唯一的辦法如下:
$('a').filter(function() {
return $(this).closest('th').size() == 0
})
使用jQuery選擇器,是否可以選擇不是其他選擇器元素後代的所有元素。選擇不是指定元素的後代的所有元素
例如,我想選擇所有的a
標籤,它們是而不是標籤的後裔th
標籤。我可以看到做是正確的,現在唯一的辦法如下:
$('a').filter(function() {
return $(this).closest('th').size() == 0
})
假設你正在尋找的後裔(因爲有a
元素作爲同級th
元素是無效的HTML),你可以使用:not
僞選擇這樣做:
$('a:not(th a)');
這應該是相當快使用document.querySelectorAll
現代瀏覽器,但可能會爲舊版本的IE會比原來慢。
看到一個簡單的演示在這裏:http://jsfiddle.net/JR5sP/
假設你想要做你的問題問(不論無效的HTML事實)和過濾元素與特定的兄弟姐妹,
你可以做這樣的:
$('a').filter(function() {
return $(this).siblings('b').length == 0;
}).css('color', 'orange');
HTML:
<div>
<b>Hello there</b>
<a>Don't select me!</a>
</div>
<div>
<a>Select me!</a>
<a>Select me too!</a>
</div>
你是指兄弟姐妹還是後代?你的代碼建議後者 – lonesomeday 2011-02-05 23:47:20
正如@日常暗示的:**`a`元素*不能是* th元素的兄弟**。你能發佈你正在使用的HTML嗎? – 2011-02-05 23:52:57