innerHTML 和 getElementsByName 在IE下面的bug 的解决


Posted in Javascript onApril 09, 2010

比如有这样一个问题。

<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; 
}

改成这个函数,就可以取了。只是要多一个参数了。
不知道博友们还有没有其他的解决方案,这个解决方案不是很完美。一定要在评论里面留言一下。
Javascript 相关文章推荐
jquery 防止表单重复提交代码
Jan 21 Javascript
理解Javascript_12_执行模型浅析
Oct 18 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 Javascript
jQuery的事件预绑定
Dec 05 Javascript
js实现将json数组显示前台table中
Jan 10 Javascript
iview给radio按钮组件加点击事件的实例
Sep 30 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
Javascript Dom元素获取和添加详解
Sep 24 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 Javascript
Javascript string 扩展库代码
Apr 09 #Javascript
JavaScript 设计模式之组合模式解析
Apr 09 #Javascript
跟着Jquery API学Jquery之一 选择器
Apr 07 #Javascript
基于JQuery的cookie插件
Apr 07 #Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 #Javascript
JavaScript和JQuery实用代码片段(一)
Apr 07 #Javascript
jquery 学习笔记一
Apr 07 #Javascript
You might like
PHP实现用户认证及管理完全源码
2007/03/11 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
Python入门篇之对象类型
2014/10/17 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
Python中property函数用法实例分析
2018/06/04 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
python Tornado框架的使用示例
2020/10/19 Python
巴西购物网站:Onofre Agora
2020/06/08 全球购物
公益广告宣传方案
2014/02/28 职场文书
实习协议书范本
2014/09/25 职场文书
流动人口婚育证明
2014/10/19 职场文书
岗位聘任协议书
2015/09/21 职场文书
简历自我评价范文
2019/04/24 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python