2017-02-15 2 views
0

Я новичок в jquery/javascript, и мне нужна помощь! Я пытаюсь щелкнуть только одну кнопку из ответа истинного условия, но все время сценарий будет нажимать на все кнопки ответа об истинном состоянии. Я не знаю, как это решить.нажмите только одну случайную кнопку из ответа на правильное состояние jquery/javascript

$(".enemy-box").each(function(index) { 
    var pret = Number($(this).find('.attack-price').text().replace(/,/g, '').split('$')[1]); 
    var name = $(this).find('.enemy-name').text().replace(/\s+/g, " "); 
    var x = $(this).find(document.getElementsByClassName("btn attack-btn")); // this will click on all the true conditions buttons 


    /* I have tried with this but stil not working. the script will click on all the true conditions buttons! 
    var len = $(this).find(document.getElementsByClassName("btn attack-btn")).length; 
    var random = Math.floor(Math.random() * len) + 0; 
    var x = $(this).find(document.getElementsByClassName("btn attack-btn")).eq(random);  
    */ 

    if (name.indexOf("Test") == -1 && pret <= 39.99) { 
     x.click(); 
    } 

}); 

Любая помощь очень ценится, заблаговременно!

+0

Покажите свой HTML часть. –

+0

Ваш вопрос непонятен после завершения js с html – sunil

+0

Вы уже используете '$ (this) .find (className)' дважды, почему бы вам вернуться к выбору нескольких элементов с помощью 'getElementsByClassName()'? Вы уже * зацикливаете все элементы '.enemy-box'. Или у вас на самом деле есть несколько '.attack-btn' 'за' вражеский ящик'? Покажите свой HTML. –

ответ

0

Попробуйте заменить $ (this) .find (document.getElementsByClassName ("btn attack-btn")); с $ (this) .find ('. attack-btn: first) ;.

getElementByClassName не требуется при использовании jQuery. : сначала будет возвращено только первое вхождение селектора.

0

Это происходит потому, что вы передаете документ как контекст функции find(). И, поскольку вы используете jQuery, вам не нужно использовать JS-метод. Просто передайте селектор методу find().

Вы можете сделать это либо

var x = $(this).find('btn.attack-btn:first'); 

или

var x = $(this).find($('btn.attack-btn').eq(0));