2013-07-16 48 views
0

我有我需要验证的无线电选框选择问题列表。如何遍历无序列表,然后选择列表项的父div div

<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> 

我想验证并附加一个名为“突出显示”的类仅用于保存尚未回答的问题的div。我现在设置它的方式会突出显示所有问题,当我尝试提交只有一个或两个未选定选项的表单时。 我无法遍历问题并只选择那些未答复的问题,并调用此jquery语句。

$("li .question").addClass('highlight'); 
+0

你是如何通过元素迭代? –

+0

这可能会帮助你开始:http://api.jquery.com/not-selector/ –

+0

我认为你应该检查问题的修订版本。这些问题属于同一班。因此,我可以选择课程并在出现问题时突出显示所有课程。迭代部分是我遇到麻烦的地方。我不是一个真正的jquery人。我只知道基本的东西,但我正在努力。 – Sophonias

回答

6
$('.question').filter(function() { 
    return ! $(this).find('input:checked').length; 
}).addClass('highlight'); 

这里的小提琴:http://jsfiddle.net/XTDre/

+0

酷!我打算写一些类似的东西,但以更复杂的方式) –

+0

return! $(本).find( '输入:检查')长度; ??。 –

+2

@MESSIAH - $(this).find('input:checked')'选择任何选中的单选按钮,'.length'是匹配集合的计数。否定计数将返回“0”,对于其他任何数字都将返回true。 'filter'将只返回函数返回true的'.question's。 –