2012-06-08 66 views
2

我有以下HTML:正則表達式

 
<div class="questionItem">
<input data-val="true" data-val-number="The field MappingId must be a number."
data-val-required="The MappingId field is required."
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,值爲?的子輸入的問題項。

如何構造has()子句?

+0

這可能會幫助:http://stackoverflow.com/questions/3086554/find-all-elements-based-on-ids-using-正則表達式的jquery選擇器 – nhahtdh

回答

1

正則表達式。只需使用:has和屬性選擇:

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

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

+0

正確的標誌!我喜歡jsfiddle.net網站,那個搖滾樂。謝謝。 –

2

應該是這樣的:

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

DEMO:這裏不需要http://jsfiddle.net/nUNJd/