我需要hide()
所有類別級別的元素'.dd-container'
,除非該元素具有id
的'#tools'
。jQuery刪除除具有特定ID以外的類別元素
我嘗試以下(沒有工作),但我敢肯定我捏造的語法:
$('div:has(.dd-container):not(#tools .dd-container)').hide();
我需要hide()
所有類別級別的元素'.dd-container'
,除非該元素具有id
的'#tools'
。jQuery刪除除具有特定ID以外的類別元素
我嘗試以下(沒有工作),但我敢肯定我捏造的語法:
$('div:has(.dd-container):not(#tools .dd-container)').hide();
我認爲這應該工作:
$("div:not(#tools)").find(".dd-container").hide();
編輯:認爲我錯讀了這個問題。是否有一個dd-container
類別也有id
工具?如果是這樣,那麼你就需要把它改成這樣:
$("div").find(".dd-container:not(#tools)").hide();
或這樣的:(應該更快地執行根據一些測試,我做了一段時間後)
$(".dd-container:not(#tools)", "div").hide();
它的速度更快的原因,是因爲它首先在尋找類,而不是尋找所有的div,然後通過他們所有......我想。
#tools .dd-container
有#tools請和.DD容器 之間有空白,這意味着#tools請的所有子與類.DD容器 例如
<table id="tools"><tr class='dd-container'>
so#tools.dd-container should work但peirix的答案更容易閱讀。
$('div:has(.dd-container):not(#tools.dd-container)').hide();
(注後「#tools請」空間不足) 或
$('div:has(.dd-container):not(#tools)').hide();
(如ID是唯一的,你也許可以用類說明爲「不」選擇免除)
是的,也許我沒有解釋得太好。第一個沒有工作,因爲,正如你所說,dd容器有一個工具id。我在看到最後一次編輯之前最終解決了這個問題,但我用完全相同的方式解決了這個問題。 感謝您的努力。 – 2009-09-30 09:05:19