2013-07-19 111 views
0

在JavaScript中,我有指示获取水果的名称。但警报始终显示为空。 我检查了我的逻辑,但无法找到问题。有什么建议么?谢谢!javascript单选按钮值null

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>My Fruit</title> 
     <script type="text/javascript"> 
     function checkFruit(){ 
      var fruit_radio_pointers = document.querySelector('[name="fruit"]'); 
      var which_fruit = null; 
      for(var i=0; i<fruit_radio_pointers.length; i++){ 
       if(fruit_radio_pointers[i].checked){ 
        which_fruit = fruit_radio_pointers[i].value; 
        break;    
       }  
      } 
      alert(which_fruit); 
     } 

     //document.getElementById("my_btn").addEventListener("click", checkFruit, false); 
     </script> 
    </head> 
    <body> 
    <p> 
     <input name="fruit" type="radio" value="apple" /> Apple<br /> 
     <input name="fruit" type="radio" value="cherry" /> Cherry 
    </p> 
    <p> 
     <button id="my_btn" onclick="checkFruit()" >Which Fruit?</button> 

    </p> 
    </body> 
    </html> 

回答

4

querySelectorAll使用:

var fruit_radio_pointers = document.querySelectorAll('[name="fruit"]'); 

querySelector仅返回第一个找到的匹配(不作为阵列)。
它等于document.querySelectorAll('[name="fruit"]')[0]
正如你可能已经知道的那样,querySelectorAll将所有找到的匹配返回为一个数组。

Example

+1

我刚刚注意到我没有得到那些票的声望......我称之为公牛。 – Shawn31313

+0

啊,每日限制:( – Shawn31313