IE7中的getElementsByName

我有一些代码这样做:


 var changes = document.getElementsByName(from);

 for (var c=0; c<changes.length; c++) {

   var ch = changes[c];

   var current = new String(ch.innerHTML);

   etc.

 }

这在FF和Chrome中工作正常,但在IE7中则不能。大概是因为getElementsByName在IE中无法使用。最好的解决方法是什么?


千万里不及你
浏览 424回答 3
3回答

繁花如伊

有几个问题:IE确实id=""与name=""name="" 不允许 <span>要修复,我建议:更改name=""为class=""像这样更改代码:--var changes = document.getElementById('text').getElementsByTagName('span');for (var c=0; c<changes.length; c++) {&nbsp;var ch = changes[c];&nbsp;if (ch.className != from)continue;&nbsp;var current = new String(ch.innerHTML);

慕姐4208626

我已经成功使用包装器返回了元素数组。也可以在IE 6和7中使用。请记住,它不是100%与document.getElementsByName完全相同,因为它不是NodeList。但是对于我所需要的,就是在元素数组上运行一个for循环以完成诸如set .disabled = true的简单操作,它已经足够好了。即使此函数仍使用getElementsByName,但以这种方式使用也可以工作。你自己看。function getElementsByNameWrapper(name) {&nbsp; a = new Array();&nbsp; for (var i = 0; i < document.getElementsByName(name).length; ++i) {&nbsp; &nbsp; a.push(document.getElementsByName(name)[i]);&nbsp; }&nbsp; return a;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript