2013-07-19 1 views
0

Я скопирую пример java-скрипта jsfiddle и запустил его на локальном сервере, но он показывает ошибку на google chrome в inspect_element/console. Любые предложения по исправлению этого? Благодарю.Объект # <HTMLDocument> не имеет метода getElementByName

ошибка:

Uncaught TypeError: Object #<HTMLDocument> has no method 'getElementByName' 
compute onclick 

мой код:

<!DOCTYPE html> 
<html> 
<head> 
    <title>My fruit</title> 
    <script type="text/javascript"> 
    function checkFruit(){ 
     var fruit_radio_pointers = document.getElementsByName("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> 
    <button id="my_btn">Which Fruit?</button> 
</p> 
</body> 
</html> 
+1

Если вы пытаетесь это сделать, вы можете использовать 'document.querySelector ('[name =" fruit "]');' – Ian

ответ

1

Названия не обеспечивает уникальность в HTML, так что функция getElementsByName (обратите внимание на с после элемента). Когда вы измените это, помните, что он вернет массив, а не один элемент.

+1

NodeList, а не массив. – Quentin

+0

@Quentin Достаточно честный, я просто хотел понять, что ему, возможно, придется добавить [0] в конце, когда он его использует (хотя в этом точном случае я не думаю, что это необходимо) – Jordan

Смежные вопросы