3

我有以下 HTML:

" <div class="questionItem"> 
<input data-val="true" data-val-number="字段 MappingId 必须是数字。"
data-val-required="MappingId 字段是必需的。"
id="answers_2__MappingId" name="answers[2].MappingId" type="hidden" value="23" />
<input id="answers_2__Item" name="answers[2].Item" type="hidden" value ="B0300" />
<input id="answers_2__SetAnswer" name="answers[2].SetAnswer" type="hidden" value="^" />
</div>

jQuery 将为我提供所有的 questionItems:

var coll = $('.questionItem');

我不需要所有这些,我只需要具有名称answers[/d+].SetAnswer和值的子输入的 questionItems ?

如何构建该has()子句?

4

2 回答 2

2

它应该是这样的:

var coll = $(".questionItem").filter(function() {
    return $(this).find(":input").filter(function() {
        return /^answers\[\d+\]\.SetAnswer$/.test(this.name) && this.value == "?";
    }).length > 0;
});

演示:http: //jsfiddle.net/nUNJd/

于 2012-06-08T16:06:25.543 回答
1

这里不需要正则表达式。只需使用:has和属性选择器:

$(".questionItem:has(input[name$='.SetAnswer'][value='?'])");

小提琴:http: //jsfiddle.net/jonathansampson/S8kft/

于 2012-06-08T16:14:54.550 回答