使用jQuery查找特定输入

使用jQuery查找特定输入,jquery,jquery-selectors,Jquery,Jquery Selectors,我正在研究一个评估系统。页面上有许多“questionItem”块。目标是确定答案[2].SetAnswer或答案[2].Answer设置为空字符串或?并将标题(项目)亮起。当用户更改问题时,删除突出显示 它是有效的,我只是在寻找如何改进它。这里是一个街区: $<div class="questionItem"> <input data-val="true" data-val-number="The field MappingId must be a number."

我正在研究一个评估系统。页面上有许多“questionItem”块。目标是确定答案[2].SetAnswer或答案[2].Answer设置为空字符串或?并将标题(项目)亮起。当用户更改问题时,删除突出显示

它是有效的,我只是在寻找如何改进它。这里是一个街区:

$<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="24" />
    <input id="answers_2__Item" name="answers[2].Item" type="hidden" value="B0300" />
    <input id="answers_2__OldAnswer" name="answers[2].OldAnswer" type="hidden" value="^" />
    <input id="answers_2__SetAnswer" name="answers[2].SetAnswer" type="hidden" value="^" />
    <h3 class="item">B0300</h3>
    Hearing aid<br/>
    <select class="hyperSwap" id="answers_2__Answer" name="answers[2].Answer">
        <option selected="selected" value="?">(select item)</option>
        <option value="0">(0) No</option>
        <option value="1">(1) Yes</option>
        <option value="-">(-) Not assessed</option>
    </select>
</div>

<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_11__MappingId" name="answers[11].MappingId" type="hidden" value="228" />
    <input id="answers_11__Item" name="answers[11].Item" type="hidden" value="C0900A" />
    <input id="answers_11__OldAnswer" name="answers[11].OldAnswer" type="hidden" value="0" />
    <input id="answers_11__SetAnswer" name="answers[11].SetAnswer" type="hidden" value="?" />
    <h3 class="item">C0900A</h3>
    Staff asmt mental status: recall current season <br/>
    <div class="questionCheckbox"><input id="C0900A_0" name="answers[11].Answer" type="radio" value="0" /> (0) Not checked (No)</div>
    <div class="questionCheckbox"><input id="C0900A_1" name="answers[11].Answer" type="radio" value="1" /> (1) Checked (Yes)</div>
    <div class="questionCheckbox"><input id="C0900A_-" name="answers[11].Answer" type="radio" value="-" /> (-) Not assessed</div>
</div>
有两个问题:

问题1:最后一行,如果我没有弄错的话,处理程序被添加到所有输入中,包括隐藏的输入。如何将其连接到答案[#]。答案输入

问题2:这个表单上的某个人给了我第一个查询,它提供了不同功能的初始集合。我知道它在做什么,但我不知道它是怎么做的:/^answers[\d+].Answer$/.test(这个.name)是怎么回事?为什么结尾有一个.length()>0?

Q1:

coll.find(":input").filter(function(){
  return (/^answers\[\d+\]\.Answer$/.test(this.name);
}).addClass('unanswered');
问题2:

表示:“对于每个元素,如果函数返回true(或“truthy”值)”,则过滤器函数可以简单地返回
。length
:0为falsy,其他数字为truthy

/^answers[\d+]。Answer$/
是一个正则表达式:

.test(this.name)
检查当前处理的输入的名称是否与所需格式匹配

coll.find(":input").filter(function(){
  return (/^answers\[\d+\]\.Answer$/.test(this.name);
}).addClass('unanswered');