Jquery变量没有正确比较

时间:2014-09-01 23:54:50

标签: javascript jquery html

我试图从这3个元素中获取结果,每次单击按钮时它都会更新

<span id="machine1Result" class="slotMachine noBorder">0</span>
<span id="machine2Result" class="slotMachine noBorder">0</span>
<span id="machine3Result" class="slotMachine noBorder">0</span>

使用此代码尝试获取元素的3个组合值,如果匹配,我可以进行一些更改:

var text = $('#machine1Result,#machine2Result,#machine3Result').text();
var comparingText0 = "000";
var comparingText1 = "111";

if (text == comparingText0) {
    $('.wonbg').css({'background-image': 'url(img/won_bg.png)'});
    $('.rw14').css({'backgroundColor': '#ff9900'});
    count += 1;
}
if (text == comparingText1) {
    $('.wonbg').css({'background-image': 'url(img/won_bg.png)'});
    $('.rw1').css({'backgroundColor': '#ff9900'});
    count += 1;
}
else {
    $('.slotMachineButton').click(function() {

        $('.wonbg').css({"background": "none"});
        $('.rewards').css({"background": "none"});

    });
}

如果元素具有相同的数字,则上面的代码会正确运行条件,但即使有一个错误的数字表示110或101,它也会起作用,反之亦然,尝试===给我相同的结果

2 个答案:

答案 0 :(得分:1)

如果第一个条件为真,它也会触发其他条件。那是因为这一行

if ( text == comparingText1 ) { 
如果

应该是其他的

else if ( text == comparingText1 ) { 

现在所有条件都将被链接。

Bow另一个问题是text is text()

var text = $('#machine1Result,#machine2Result,#machine3Result').text();
编辑:既然你提出的是错的,我必须改变答案......

text)_只会给出第一个答案,所以你需要循环遍历它们

var results = $('#machine1Result,#machine2Result,#machine3Result');
results.each( function() { 
    var currentLine = $(this);
    var currentText = currentLine.text();
    console.log(currentText);
} );

答案 1 :(得分:0)

我想通了,插件http://plugins.jquery.com/slotmachine/本身导致后期检测元素的最终结果:

在插件停止并设置结果后,在写入最终结果之前有1.3秒的延迟,比如说000然后它再写一个001, 011结果111我注意到它当注入alert();时,它提醒我超过3个不同的结果,它也发生在console.log(),发送超过4到5个请求。

我所做的就是在最终结果发生时设置超时1.3秒,所以:

setTimeout(function () {
var results = $('#machine1Result, #machine2Result, #machine3Result').text();
var comparingText0 = "000";
var comparingText1 = "111";

        if ( results == comparingText0 ) { 
            $('.wonbg').css({'background-image' : 'url(img/won_bg.png)'});
            $('.rw14').css({'backgroundColor' : '#ff9900'});
            count += 1;
        }
        else if ( results == comparingText1 ) { 
            $('.wonbg').css({'background-image' : 'url(img/won_bg.png)'});
            $('.rw1').css({'backgroundColor' : '#ff9900'});
            count += 1;
        }
        else {
            $( '.slotMachineButton' ).click(function() {

                $('.wonbg').css({"background" : "none"});
                $('.rewards').css({"background" : "none"});

            });
        }
    }, 1300);