2013-02-13 34 views
0

必须将浏览器火狐

MooTools的版本必须是1.2.x的

  1. $$选择返回太多的元素只是Firefox

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或更改类名称之外,有没有人有很好的解决这个问题?

+0

为什么不更新? – Bergi 2013-02-13 18:38:25

+0

奇怪的是,即使是文字形式$$('div [class = rf]')'也有这种行为 – 2013-02-13 18:43:32

+0

好问题。该应用程序在JS中很重,并且由于简单的更新,我不想让其他任何东西破坏。 – styks 2013-02-13 18:44:13

回答

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