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 相关文章推荐
Save a File Using a File Save Dialog Box
Jun 18 Javascript
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
基于datagrid框架的查询
Apr 08 Javascript
10条建议帮助你创建更好的jQuery插件
May 18 Javascript
使用Raygun来自动追踪AngularJS中的异常
Jun 23 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
JavaScript中set与get方法用法示例
Aug 15 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
May 31 Javascript
JS实现水平遍历和嵌套递归操作示例
Aug 15 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 空格,换行,跳格使用说明
2009/12/18 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
Python学习小技巧总结
2018/06/10 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
医药专业推荐信
2013/11/15 职场文书
英文留学推荐信范文
2014/01/25 职场文书
小学生家长评语集锦
2014/01/30 职场文书
小学生安全保证书
2014/02/01 职场文书
承诺书范文
2014/06/03 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
公司人事任命通知
2015/04/20 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
重阳节简报
2015/07/20 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL