2014-09-01 2 views
0

я пытался захватить результаты этого 3-х элементов, он обновляет каждый раз, когда я нажимаю кнопкуJquery переменные не сравнивающие правильно

<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, и наоборот, пытались === дает мне одинаковые результаты.

+1

, что селектор не будет сочетать в себе текст. вам придется делать это вручную. –

+0

Я пытался получить результат из трех элементов, поэтому, когда они совпадают, я могу запустить условие. – user2930790

+2

[Ничего себе, что действительно работает.] (Http://codepen.io/Pointy/pen/febyE) Немного странно, что это не симметрично с '.html()'. Учитесь чему-то каждый день. – Pointy

ответ

1

Если первое условие истинно, оно также запустит другое. Это потому, что эта линия

if (text == comparingText1) { 

должно быть еще, если будут связаны

else if (text == comparingText1) { 

и теперь все условия.

Bow другой вопрос текст текст()

var text = $('#machine1Result,#machine2Result,#machine3Result').text(); 

EDIT: так как то, что вы дали неправильно, я должен изменить ответ ....

текст) _ только даст первый ответ, так что вам нужно будет перебрать их

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

те же результаты, что и состояние все еще срабатывает, я включил код 'console.log ('' '+ text +' '');' @ jfriend00 это дало мне 3 результата в строке '" "000" "" "000" "и" "001" "' – user2930790

+0

Подождите, так что вы показали выше в примере html и в этом комментарии не совпадают ... – epascarello

+0

btw im using плагин отсюда [http://josex2r.github.io/jQuery- SlotMachine /] на странице вы можете увидеть результат индекса, который в настоящее время активен под машиной. – user2930790

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); 
+0

Кстати, спасибо тем, кто ответил. – user2930790