jQuery:从解析的html片段中选择元素

时间:2009-11-18 11:36:03

标签: javascript

在类方法中,我解析一个像这样的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片段中获取某个元素的正确方法是什么?

1 个答案:

答案 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>的父元素,否则您将直接搜索元素,而不是从它们上方搜索。