在类方法中,我解析一个像这样的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 :(得分: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>
的父元素,否则您将直接搜索元素,而不是从它们上方搜索。