相关疑难解决方法(0)

javascript document.getElementsByClassName与IE的兼容性

检索具有特定类的元素数组的最佳方法是什么?

我会使用document.getElementsByClassName,但IE不支持它.

所以我尝试了Jonathan Snook的解决方案:

function getElementsByClassName(node, classname) {
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}
var tabs = document.getElementsByClassName(document.body,'tab');
Run Code Online (Sandbox Code Playgroud)

......但IE仍然说:

Object不支持此属性或方法

任何想法,更好的方法,错误修复?

我宁愿不使用涉及jQuery或其他"笨重的javascript"的任何解决方案.

更新:

我得到了它的工作!

正如@joe提到的那样,函数不是一种方法document.

所以工作代码看起来像这样:

function getElementsByClassName(node, classname) {
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}
var tabs = getElementsByClassName(document.body,'tab'); …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer class classname internet-explorer-8

75
推荐指数
5
解决办法
8万
查看次数

如何将自己的方法添加到HTMLElement对象?

例如,this.parentNode我想写this.p或不 document.getElementById('someid')document.g('someid').当然这只是一个简单的例子,我只是想知道这样做的正确方法是什么.

(我知道我可以使用jQuery或Prototype,但我想了解它是如何在JS中完成的)

javascript methods

21
推荐指数
2
解决办法
2万
查看次数

Skycons,不能两次显示相同的图标?

我已经将JavaScript插件"Skycons"连接到Yahoo天气RSS源.我遇到的问题是多天可能有相同的天气预报,因为插件从ID而不是类中拉出图标我无法再次拉出相同的图标.

例如,下面的所有图标将与最后一个li实例分开显示 - 因为我重复了id雪:

<ul class="days">
       <li class="col-md-3 col-sm-3 col-xs-3"><strong>Saturday</strong>
             <canvas id="snow" width="50" height="50"></canvas>
             <span>19&deg;</span>
       </li>
       <li class="col-md-3 col-sm-3 col-xs-3"><strong>Sunday</strong>
             <canvas id="rain" width="50" height="50"></canvas>
             <span>19&deg;</span>
       </li>
       <li class="col-md-3 col-sm-3 col-xs-3"><strong>Monday</strong>
             <canvas id="sleet" width="50" height="50"></canvas>
             <span>19&deg;</span>
       </li>
       <li class="col-md-3 col-sm-3 col-xs-3"><strong>Wednesday</strong>
             <canvas id="snow" width="50" height="50"></canvas>
             <span>19&deg;</span>
       </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这是我的初始化JS:

<!--SkyCons-->  
<script type="text/javascript" src="js/vendors/skycons/skycons.js"></script> 
<script>
      var icons = new Skycons({"color": "#fff"}),
          list  = [
            "clear-day", "clear-night", "partly-cloudy-day",
            "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind",
            "fog"
          ],
          i;

      for(i = list.length; i--; )
        icons.set(list[i], …
Run Code Online (Sandbox Code Playgroud)

javascript css

7
推荐指数
1
解决办法
2164
查看次数