getElementsByName 在IE下面的bug 的解决

转自:http://www.fengfly.com/plus/view-183103-1.html


比如有这样一个问题。 

复制代码 代码如下:

<div id="playlist"> 
</div> 

在这div 中,加入一个播放吗列表。这列表用innerHTML 加入。 
复制代码 代码如下:

var plst = null; 
plst = player.getPlaylist(); 
if (plst) { 
var txt = ''; 
for(var i in plst) { 
txt += '<a name="fv_item_a_' + i + '"></a><div class="fv_item" id="fv_item_'+ i +'"><div class="playing_bg" name="playing_bg"></div>'; 
txt += '<div class="playing" name="playing">正在播放...</div>'; 
txt += '<img src="' + plst[i].image + '" width="80" height="50" class="fv_playlist_img" />'; 
txt += '<p class="fv_playlist_title"> ' + plst[i].title + ' </p>'; 
txt += "</div>"; 

var obj= document.getElementById("playlist"); 
if (obj) { 
obj.innerHTML = txt; 



中间的复杂代码不用去管了,现在我要把name 为 playing 的 div 取出来。很容易想到用 
getElementsByName 
但是,非常奇怪的是,在ie 下面 就是 取不到。getElementById 完全可以用。 
下面是一个不错的解决方案: 
复制代码 代码如下:

function GetElementsByName(tag, name) { 
var elem = document.getElementsByTagName(tag); 
var arr = []; 
var index = 0; 
var l = elem.length; 
for(var i = 0; i < l; i++) 

var att = elem[i].getAttribute("name"); 
if(att == name) { 
arr[index++] = elem[i]; 


return arr; 


改成这个函数,就可以取了。只是要多一个参数了。 
不知道博友们还有没有其他的解决方案,这个解决方案不是很完美。一定要在评论里面留言一下。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值