2017-04-24 42 views
-1

为什么我不能getElementByName?html js append和getElementByName

<form class="form" action="#"> 
         <p class="EmptySlot" hidden> 
          <input name="characters" type="radio" id="empty" disabled="disabled"/> 
          <label for="empty">Пустой слот</label> 
         </p> 
        </form> 

然后:

$(".form").append('\ 
     <p>\ 
      <input name="character" type="radio" id="' + notformatname + '" value="' + notformatname + '"/>\ 
      <label for="' + notformatname + '" id="charlabel">' + formatname + '</label>\ 
     </p>'); 

而且它不工作:

var radios = document.getElementsByName('character'); 
+0

作品对我蛮好 –

+0

你甚至尝试访问检索节点列表的元素呢?此外,你需要更具体的比_it不工作。 –

+0

你包含jQuery库吗? –

回答

0

该方法将返回一个集合,而不是一个单一的元素。你可以试试...

$(".form")[0].append('\ 
     <p>\ 
      <input name="character" type="radio" id="' + notformatname + '" value="' + notformatname + '"/>\ 
      <label for="' + notformatname + '" id="charlabel">' + formatname + '</label>\ 
     </p>'); 

应该得到属于“形式”类第一种形式。

第二个应该工作,但请记住,“收音机”也将是一个集合。

0

。如果多个元素的名称为'character',则getElementsByName可能会返回多个元素。

要获取返回的元素列表中的第一项,请尝试:

var radios = document.getElementsByName('character')[0];