2011-02-26 39 views
0

有什麼辦法可以更簡潔地表達下面的jQuery選擇器嗎?讓jQuery選擇器更簡潔

$this 
.children('div[name][class="array"],div[name][class="object"],input[name][value]') 
.each(...); 

粗略地說,這是什麼選擇呢是挑$this滿足以下邏輯條件的直接孩子:

('div' AND '[name]' AND '[class="array"]') 
OR 
('div' AND '[name]' AND '[class="object"]') 
OR 
('input' AND '[name]' AND '[value]') 

我想有挑選的$this眼前的孩子選擇器滿足以下等價邏輯條件:

'[name]' AND (('input' AND '[value]') OR 
       ('div' AND ('[class="array"]' OR '[class="object"]'))) 

而且不,我做NOT想要連續撥打.filter()

+0

這不是一個非常繁瑣的選擇器,所以我不明白爲什麼它不能保持原樣。 AFAIK,沒有更簡單的方式來表達類似的東西。 – 2011-02-26 19:01:38

+0

不是可怕的冗長? '.children(...)'行的寬度超過50個字符。 – pyon 2011-02-26 19:04:30

+1

它可能超過50個字符,但它不是'可怕的冗長',因爲它似乎儘可能簡潔。 – 2011-02-26 19:10:31

回答

2
$this.children("input[value][name], div.array[name], div.object[name]") 
+0

錯過了,但從邏輯角度來看,該選擇器仍然評估第一個條件。 – pyon 2011-02-26 19:02:50