getElementById总是返回第一个对象,我怎么能得到其他值?

时间:2012-02-02 09:50:10

标签: php javascript ajax

ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
     var ajaxDisplay = document.getElementById('detail');
     ajaxDisplay.innerHTML = ajaxRequest.responseText;
     }
  }
  var prezime = document.getElementById('form1').getAttribute('value');
  var queryString = "?prezime=" + prezime ;

PHP

echo '<input type="text" id="form1" class="button1" value="'. $row["prezime"] .'" 
name="'. $row["prezime"] .'" onclick="ajaxFunctionII()" >';
echo("</form>");

4 个答案:

答案 0 :(得分:2)

Id始终为uniqueone element,您不应对多个元素使用相同的ID。 即使你使用,getElementById也只会选择DOM找到的第一个元素,它不会寻找任何其他元素。

利用nameclass并使用getElementsByNamegetElementsByClassName来获取这些元素。

<强> Reference

答案 1 :(得分:0)

具有相同ID的多个元素是错误的,无效并且会导致问题。不要那样做。

为每个元素提供不同的ID,如果您想将它们放在“组”中,请为它们指定name

要按名称获取元素集合,请执行以下操作:

var arrButtons = document.getElementsByName("detail");
ajaxDisplay = arrButtons[1];
ajaxDisplay.innerHTML = ajaxRequest.responseText;

在上面,您将指定第二个按钮。

答案 2 :(得分:0)

理想情况下,我们应该在DOM中只有一个元素,具有任何给定的id值。

您可以尝试document.getElementsByTagNamedocument.getElementsByName

如果您使用的是jQuery,它应该非常简单$('#id') or $('.classname')将返回所有匹配的元素。

答案 3 :(得分:0)

你应该去上课而不是id。同样的问题在给定的链接上解决,请检查。

Get multiple elements by Id