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 相关文章推荐
JavaScript中的对象化编程
Jan 16 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
JavaScript采用递归算法计算阶乘实例
Aug 04 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
vue异步加载高德地图的实现
Jun 19 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 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
文章推荐系统(二)
2006/10/09 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
php 基础函数
2017/02/10 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JavaScript实现大数的运算
2014/11/24 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
Python格式化css文件的方法
2015/03/10 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python超时重新请求解决方案
2019/10/21 Python
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
四年级数学教学反思
2014/02/02 职场文书
优秀家长自荐材料
2014/08/26 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
投诉书范文
2015/07/02 职场文书
获奖感言范文
2015/07/31 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS