Mootools 1.2和Firefox $$选择了太多元素

时间:2013-02-13 18:36:23

标签: javascript mootools1.2

浏览器必须为firefox

Mootools版本必须为1.2.x

  1. $$选择器仅在firefox
  2. 中返回太多元素

    http://jsfiddle.net/e77Xp/4/

    HTML

    <div class="only_trucks diagramz" id="diatruck">
        <div class="lf">lf</div>
        <div class="rf">rf</div>
        <div class="la">la</div>
        <div class="ra">ra</div>
        <div class="lrfo">lrfo</div>
        <div class="rrfo">rrfo</div>
        <div class="lrfi">lrfi</div>
        <div class="rrfi">rrfi</div>
        <div class="lrro">lrro</div>
        <div class="rrro">rrro</div>
        <div class="lrri">lrri</div>
        <div class="rrri">rrri</div>
    </div>
    

    JS

    selected = $$('.rf');
    alert(selected.length);
    console.log(selected);
    

    这应该只返回1个结果但返回多个结果。它似乎与其他具有“rf”的类相匹配。

    除了更新到最新版本的mootools或更改类名之外,还有人对此有一个很好的解决方法吗?

1 个答案:

答案 0 :(得分:0)

它是一个错误,但它可以修复(感谢this answer)。将此代码添加到JavaScript中。

String.prototype.contains = function(string, separator){
    return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : String(this).indexOf(string) > -1;
};

这是fixed demo