微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用getElementById填充页面上的元素

如何解决使用getElementById填充页面上的元素

| Ajax是新功能,但我知道您可以使用getelementbyid更新具有该ID的页面上的任何元素。我想知道的是,如果它们都具有相同的ID,您如何定位页面上的特定元素?
<li class=\"a\">something</li><li class=\"a\">something b</li>
如何定位第二个李?由于它们都使用相同的ID,因此我无法使用getelementbyid(\'a \'),因为这只会更新具有该ID的第一个元素。 这是我的ajax脚本
function loadurl(dest) {
var XMLHttpRequestObject = false; 
if (window.XMLHttpRequest) { 
        XMLHttpRequestObject = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
        XMLHttpRequestObject = new 
        ActiveXObject(\"Microsoft.XMLHttp\"); 
} if(XMLHttpRequestObject) { 
        XMLHttpRequestObject.open(\"GET\",dest); 
        XMLHttpRequestObject.onreadystatechange = function() { 

    if (XMLHttpRequestObject.readyState == 4 && 
        XMLHttpRequestObject.status == 200) { 
        document.getElementById(\"a\").innerHTML = 
        XMLHttpRequestObject.responseText; 
        delete XMLHttpRequestObject; 
        XMLHttpRequestObject = null; 
        } 
    } 
    XMLHttpRequestObject.send(null); 
} 
} 这是链接
<a onclick=\"loadurl(\'page.PHP?p=1&id=2\')\">
    

解决方法

        在HTML页面中多次使用相同的ID是无效的HTML。如果您改用类名:
<li class=\"a\">something</li><li class=\"a\">something b</li>
那么您可能已经使用document.getElementsByClassName()获得了一个包含该类所有元素的数组。 要将您的回复放在第二个元素中,请使用类似以下的内容:
document.getElementsByClassName(\"a\")[1].innerHTML = XMLHttpRequestObject.responseText;
或者,要将您的响应放入具有该类名称的所有元素中,请使用类似以下内容的方法:
var els = document.getElementsByClassName(\"a\");
for (var i = 0; i < els.length; ++i)
    els[i].innerHTML = XMLHttpRequestObject.responseText;
    ,        不要重复ID,而应使用类名。 ID是唯一的。
<li class=\"a\">something</li><li class=\"a\">something b</li>
然后,您可以使用jQuery之类的东西来选择它们。
$(\".a\")
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。