相关疑难解决方法(0)

如何在JavaScript中为Internet Explorer浏览器修复Array indexOf()

如果您已经使用过任何长度的JavaScript,那么您就知道Internet Explorer没有为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数.这不是一个大问题,因为您可以使用以下代码扩展页面上的功能.

Array.prototype.indexOf = function(obj, start) {
     for (var i = (start || 0), j = this.length; i < j; i++) {
         if (this[i] === obj) { return i; }
     }
     return -1;
}
Run Code Online (Sandbox Code Playgroud)

我什么时候应该实现这个?

我应该使用以下检查将其包装在我的所有页面上,检查是否存在原型函数,如果不存在,请继续并扩展Array原型?

if (!Array.prototype.indexOf) {

    // Implement function here

}
Run Code Online (Sandbox Code Playgroud)

或者浏览器检查,如果它是Internet Explorer,那么只需实现它?

//Pseudo-code

if (browser == IE Style Browser) {

     // Implement function here

}
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer cross-browser internet-explorer-8

294
推荐指数
7
解决办法
17万
查看次数

使用jQuery排序,删除和追加元素在IE中不起作用

这个功能可以对我的链接进行排序,就像Chrome/Safari/Firefox上的魅力一样,但在IE中则不然.有人可以告诉我为什么吗?

症状:一切都消失了(第2行)没有出现任何内容(第3行)

HTML:

 <div class="genres">
   <a title="90 items" href="?genre=absurdism"><span>absurdism</span></a>
   <a title="83 items" href="?genre=action"><span>action</span></a>
   <a title="322 items" href="?genre=adult"><span>adult</span></a>
   <a title="2974 items" href="?genre=adventure"><span>adventure</span></a>
   <a title="106 items" href="?genre=about+comics"><span>about comics</span></a>
 </div>
Run Code Online (Sandbox Code Playgroud)

脚本:

sorted = $('.genres a').sort(function(a, b) {
    return a.innerHTML > b.innerHTML
});
$('.genres').html('');
sorted.each(function(i, a) {
    $('.genres').append(a)
});
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/MWkJg/2/

此代码的在线页面位于http://www.lambiek.net/webshop.html(点击"流派"按钮)

javascript sorting jquery internet-explorer

5
推荐指数
1
解决办法
913
查看次数