innerHTML 和 getElementsByName 在IE下面的bug 的解决_javascript技巧

比如有这样一个问题。

复制代码 代码如下:

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

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

时间: 2024-09-20 04:11:32

innerHTML 和 getElementsByName 在IE下面的bug 的解决_javascript技巧的相关文章

也谈低级bug引来的悲伤:你能一眼看出下面的bug所在吗?

前段时间苹果公司报出了一个iOS 7.0.6的低级bug,该bug会引起中间人攻击,出现该bug的源码如下: static OSStatus SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen) { OSStatus err; ... if ((err = SSLHashSHA1.update(&h

js解决select下拉选不中问题_javascript技巧

当事件mouseover中出现select下拉框时,select下拉是选不中的,解决办法: var o = e.relatedTarget || e.toElement;//判断下移动到的对象,移动到option上ie下是null,firefox等为undefined.. if (!o) return;//为option退出不隐藏 完整代码案例为: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu

BOOTSTRAP时间控件显示在模态框下面的bug修复_javascript技巧

一针见血:修改 bootstrap-datepicker.js 文件 复制代码 代码如下: var zIndex = parseInt(this.element.parents().filter(function(){      return $(this).css('z-index') !== 'auto';     }).first().css('z-index'))  +10; 将+10改为+99999999; 原因:z-index是设置元素的堆叠顺序,从负到正表示从下到上堆叠,这里使用c

IE6 innerHTML写入的iframe src不显示BUG的解决方法

用innerHTML写入的iframe 不显示,经折腾,其实解决方法很简单,a标签的href属性导致了BUG无法显示,有此需求的朋友可以参考下哈,希望对大家有所帮助 IE下得标签BUG有很多,这次是用innerHTML写入的iframe 不显示,在网上查了很久,终于找出了元凶,标签的href属性导致了BUG无法显示,这个属性去掉就好了,以后遇到在IE下得标签BUG,先尝试去掉href这个属性,说不定有奇效 再次感到有了百度 大学白读 百度 == 白读

js操纵跨frame的三级联动select下拉选项实例介绍_javascript技巧

运用HTML.CSS以及Javascript相关知识,编写多窗口多菜单的内容联动. 考察学生关于frame.浏览器对象,以及表单控件的概念,javascript事件触发机制和程序设计, 以及用CSS来组织文字展示的掌握程度,使学生对DHTML有更加深刻的理解. 实验内容[必做] (1)建立一个包含三个frame的窗口 (2)第一个frame1中包含一个select,内容是中国的各个省 (3)第二个frame2中同样含有一个select,内容是各省的地级市 (4)第三个frame3用来显示关于某地

JavaScript游戏之是男人就下100层代码打包_javascript技巧

这次的游戏的编写难度比之前的都高很多.本次鄙人用了js的继承以及设计模式的工厂模式,也算是一个突破...  游戏的大致设计思路:1,玩家类Player:一个人能左右移动,以及上下移动的小人.拥有的基本方法:{左右移动 : 单纯的键盘左右移动, 向下移动 : 属于向下加速度移动,每次移动都会加一个重力加速度的值, 向上移动 : 其实是跟着方块一起向上移动, 匀速向上运动, 弹跳 : 就是玩家先向上一个减速度运动,然后,当速度小于1时,像下加速度运动  }  2,方块基类BlockBase:所有方块

JS+CSS实现的经典圆角下拉菜单效果代码_javascript技巧

本文实例讲述了JS+CSS实现的圆角下拉菜单效果代码.分享给大家供大家参考,具体如下: 相信不少朋友会喜欢这一款菜单,CSS+JS实现的圆角下拉菜单,没有使用任何修饰性的图片哦,圆角完全是用JS完成的,因此代码多了些,想使用的朋友把JS文件提取出来另存,这样更合理些. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-jd-cicle-style-button-demo/ 具体代码如下: <!DOCTYPE html PUBLIC &qu

Select2.js下拉框使用小结_javascript技巧

用了这么久的Select2插件,也该写篇文章总结总结.当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件. 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下方法参数,比最初版本要好看一些,本文针对新版本. 官网:http://select2.github.io/ 演示: 由于博客系统的原因,所以只能演示简单的功能. 一.文件需要引入select2.full.js.select2.min.css(4.0.1版本)和jquery.1.8.3及以上 最新版本

js使用DOM设置单选按钮、复选框及下拉菜单的方法_javascript技巧

本文实例讲述了js使用DOM设置单选按钮.复选框及下拉菜单的方法.分享给大家供大家参考.具体实现方法如下: 1.设置单选按钮 单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个.每一个都有checked属性,当一项选择为ture时,其它的都变为false. 先贴上一个例子: 复制代码 代码如下: <script type="text/javascript">     function ge