如何遍历无序列表,然后选择列表项的父div

Sop*_*ias 0 javascript jquery javascript-events

我有一份我需要验证的radiobox选择问题列表.

<ul>
    <li>
      <div class="question">Question1
        <ul id="choice11">
             <li><input type=radio name="choice1" value="1" /> </li>
             <li><input type=radio name="choice1" value="2" /> </li>
             <li><input type=radio name="choice1" value="2" /> </li>
        </ul>
      </div>
    </li>
    <li>
      <div class="question">Question2
        <ul id="choice">
             <li><input type=radio name="choice2" value="1" /> </li>
             <li><input type=radio name="choice2" value="2" /> </li>
             <li><input type=radio name="choice2" value="3" /> </li>
        </ul>
      </div>
    </li>
    <li>
      <div class="question">Question3
        <ul id="choice3">
             <li><input type=radio name="choice3" value="1" /> </li>
             <li><input type=radio name="choice3" value="2" /> </li>
             <li><input type=radio name="choice3" value="3" /> </li>
        </ul>
      </div>
    </li>            

</ul>
Run Code Online (Sandbox Code Playgroud)

我想验证并将一个名为"highlight"的类附加到仅包含尚未回答的问题的div.我现在设置它的方式当我尝试提交只有一个或两个未选择选项的表单时,它将突出显示所有问题.我无法迭代问题,只选择那些未回答的问题并调用此jquery语句.

 $("li .question").addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

Jos*_*ber 6

$('.question').filter(function () {
    return ! $(this).find('input:checked').length;
}).addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/XTDre/

  • @MESSIAH - `$(this).find('input:checked')`选择任何选中的单选按钮,`.length`是匹配集的计数.否定计数将为"0"返回true,对于任何其他数字则返回false.`filter`将仅返回函数返回true的`.question`. (2认同)