Jquery поиск более чем одной переменной - проверка магазина Bigcommerce - PullRequest
0 голосов
/ 08 ноября 2019

У меня возникла проблема с этим кодом, когда я пытаюсь найти более одной переменной.

Основная цель этого кода - скрыть кнопки проверки кредитной карты и оставить только кнопку PayPal.

<script>
setInterval(function() {
jQuery(document).ready(function(){
setTimeout( function(){ 
jQuery(".button--tertiary").attr("onclick", "abc1()");
jQuery("#checkout-customer-continue").attr("onclick", "abc1()");
}  , 500 );
 setTimeout( function(){    
 var searchValue = "46468";
$(".product").each(function(){
if($(this).html().indexOf(searchValue) > -1){
$('label[for="radio-authorizenet"], label[for="radio-bankdeposit"], .paymentMethod--creditCard').hide();
}
});
}  , 500 ); 
    });
}, 250);
</script>

переменная, которую ищет код: «46468», но я хочу найти более одной переменной, например «46468, 46467, 46469». Я пытаюсь использовать массив, подобный этому

 var searchValue = [ "46468", "46467", "46469"]

, но он не работает, какие-либо другие варианты?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Если вы хотите найти несколько разных значений, вы можете написать цикл для прохождения всех значений и повторить поиск для каждого значения.

var searchValues = ["46468", "46467", "46469"];
$(".product").each(function() {
  for (i = 0; i < searchValues.length; i++) {
    if ($(this).html().indexOf(searchValues[i]) > -1) {
      $('label[for="radio-authorizenet"], label[for="radio-bankdeposit"], .paymentMethod--creditCard').hide();
    }
  }
});

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

0 голосов
/ 08 ноября 2019

Вы могли бы сделать что-то вроде:

if($(this).html().indexOf(searchValueOne) > -1 || $(this).html().indexOf(searchValueTwo) > -1 || $(this).html().indexOf(searchValueThree) > -1){
     $('label[for="radio-authorizenet"], label[for="radio-bankdeposit"], .paymentMethod--creditCard').hide();
}

Это сработало бы, если бы не было что-то вроде 100 чисел. В противном случае вы можете просмотреть массив. Который будет выглядеть примерно так:

foreach(arrayOfNumbers as number){
    $(".product").each(function(){
         if($(this).html().indexOf(number) > -1){
            $('label[for="radio-authorizenet"], label[for="radio-bankdeposit"], .paymentMethod--creditCard').hide();
         } 
    })
}
...