Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查元素是否包含JavaScript或jQuery中三个字符串中的一个_Javascript_Jquery - Fatal编程技术网

检查元素是否包含JavaScript或jQuery中三个字符串中的一个

检查元素是否包含JavaScript或jQuery中三个字符串中的一个,javascript,jquery,Javascript,Jquery,当DOM就绪时,我想检查页面上的元素是否包含三个字符串之一。目前,我是这样做的,但这并不像预期的那样有效,因为indexOf通常与数组结合使用: jQuery('li.woocommerce-order-overview__payment-method.method')[0].innerHTML.indexOf('iDEAL' || 'Sofortbanking' || 'Bancontact / MisterCash') > 1 如何以最有效的方式重写此代码,以检查元素是否包含三个字符

当DOM就绪时,我想检查页面上的元素是否包含三个字符串之一。目前,我是这样做的,但这并不像预期的那样有效,因为indexOf通常与数组结合使用:

jQuery('li.woocommerce-order-overview__payment-method.method')[0].innerHTML.indexOf('iDEAL' || 'Sofortbanking' || 'Bancontact / MisterCash') > 1
如何以最有效的方式重写此代码,以检查元素是否包含三个字符串之一?

var html=。。。
var html = ...
var match = new Array('iDEAL' , 'Sofortbanking' , 'Bancontact / MisterCash');
var found = false;
for(var i=0;i<3;++i){
    if(html.indexOf(match[i])!=-1){
        found = true;
    }
}
//use `found`
var match=新数组('iDEAL'、'Sofortbanking'、'Bancontact/MisterCash'); var=false; 对于(var i=0;i这是我的尝试

var-html,突出显示;
html=$(“li.woocmerce-order-overview_uupayment-method.method”).html();
显著性=[“理想”、“Sofortbanking”、“Bancontact/MisterCash”];
对于(i=0;i<0.length;i++)
{
if(html.indexOf(显著[i])!=-1)
{
//它包含字符串i
}
}
| | |(或运算符)不能以这种方式工作, 我建议使用| | exterofindexof() 像这样

indexOf('iDEAL')>1 | | indexOf('Sofortbanking')>1 | | indexOf('…')>1

如果要获取当前的Stein,请使用
match
功能

如果您只想检查它是否存在,那么使用JavaScript中的
测试

/(iDEAL|Sofortbanking|Bancontact|MisterCash){1,}/.test(
      jQuery('li.woocommerce-order-overview__payment-method.method')[0].innerHTML);
正则表达式

/(iDEAL|Sofortbanking|Bancontact|MisterCash){1,}/

将匹配该单词的一个或多个出现次数

您可以使用一个指针数组,然后使用
数组。一些
来检查元素是否包含其中任何一个

let needles  = ['iDEAL', 'Sofortbanking', 'Bancontact', 'Bancontact / MisterCash'];
let haystack = $('li.woocommerce-order-overview__payment-method.method').html();
let result   = needles.some( needle => haystack.includes( needle ) );

哈,同样的解决方案。您在这里声明开放变量,虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。您能否改进您的答案并使用工具突出显示代码?