2009-11-18 60 views
3

裏面一個類的方法我解析HTML片段是這樣的:jQuery的:從解析的HTML選擇元素片斷

this.editCtrl = $('<input type="radio" name="society" value="existing"><select class="society"></select></input><input type="radio" name="society" value="existing"><input type="text"></input></input>'); 

我這個片段添加到我的DOM,一切工作正常,但在這樣做之前,我想填補下拉。我試圖讓這樣的:

var dropdown = this.editCtrl.find('select.society'); 

像這樣:

var dropdown = $('select.society', this.editCtrl); 

結果集的長度在這兩種情況下爲零。從這樣的html代碼片段中獲取某個元素的正確方法是什麼?

+0

僅供參考,應該是'',而不是'東西'。輸入元素嚴格爲空:http://www.w3.org/TR/html401/interact/forms.html#h-17.4 –

回答

6

您可以在此情況下,使用filter

$('<input type="radio" name="society" value="existing"><select class="society"></select></input><input type="radio" name="society" value="existing"><input type="text"></input></input>').filter(function() { 
    return $(this).is('select.society') 
}) 

原因是,如果你使用find你需要從你的<select>的父元素,否則你是直接從搜索中的元素,而不是在他們上面。