2013-04-16 215 views
0

只是想了很長一段時間。我有像存儲,var sth = $("#mydiv ul li")一個變量,所以我能夠做這樣的事情jquery變量添加額外的選擇器

sth.each(function(){ 
// 
}); 

現在我想在最後添加一個額外的a標籤,像$("#mydiv ul li a")如何申請asth

應該像$(sth + 'a')

回答

4

編輯2:抱歉,我是對的... $ .add();添加選擇器

var sth = $('ul li'); 
sth.add('a').each(function() { 

}); 
// === $('ul li, a'); 

或者,如果您更喜歡在某物的子女中找到新的選擇器,

sth.find('a').each(function() { 

}); 
// === $('ul li a'); 
+1

謝謝'add'是:-) – olo

+0

+1'add'字,不知道它。 –

+1

我今天也發現了@MarcelGwerder! –

1
$('a', sth).each(function(){ 
    ... 
}); 

發現裏面sth所有錨。

+1

'.find()'語法的缺點是你必須打斷鏈。例如你不能輕易做出相當於'sth.show()。find('a')。hide()' – IMSoP

+0

@IMSoP - 噢,你的意思就像'$('a',sth.show())。每個(...' – adeneo

+0

缺點是它需要你重新排列表達式來把你以前的結果放在中間,打破常見的jQuery「鏈接」成語,其中代碼總是向前讀取,作爲連續的「操作鏈」 ).operation()。operation()...' – IMSoP

1

如果我理解正確的,你想targert的stha後代,你應該嘗試:

sth.find('a').each(function(){ 

這將是$("#mydiv ul li a")

1

相當於我想你要尋找的是.find()

the documentation所示,它「搜索與指定表達式匹配的派生元素」。在大多數情況下,這與向CSS選擇器添加額外的單詞相同。

所以在你的榜樣,你可以做sth.find('a').each(...)