Skip to main content
 首页 » 编程设计

JavaScript getAttribute 不起作用

2024年12月31日11powertoolsteam

var objects = document.getElementsByTagName('object'); 
for (var i=0, n=objects.length;i<n;i++) { 
    objects[i].style.display='none'; 
    var swfurl; 
    var j=0; 
    while (objects[i].childNodes[j]) { 
    if (objects[i].childNodes[j].getAttribute('name') == 'movie') { 
            /* DO SOMETHING */  
    } 
    j++; 
} 
    var newelem = document.createElement('div'); 
    newelem.id = '678297901246983476'+i; 
    objects[i].parentNode.insertBefore(newelem, objects[i]); 
    new Gordon.Movie(swfurl, {id: '678297901246983476'+i, width: 500, height: 400}); 
} 

它说 getAttribute 不是 childNodes[j] 的函数。怎么了?我不明白这一点。

请您参考如下方法:

记住 childNodes包括文本节点(和注释节点,如果有的话,以及处理指令,如果有的话,等等)。请务必检查 nodeType在尝试使用仅 Elements 的方法之前有。

更新:在 2018 年,您可以使用 children相反,它只包含 Element 子元素。所有现代浏览器和 IE8-IE11 都支持它。 (旧版 IE 中有一些怪癖,请参阅 polyfill 的链接以消除它们。)