Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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:使用或操作数比较单个值与多个值_Javascript_If Statement_Operands - Fatal编程技术网

Javascript:使用或操作数比较单个值与多个值

Javascript:使用或操作数比较单个值与多个值,javascript,if-statement,operands,Javascript,If Statement,Operands,可能重复: 我必须单击下拉列表(ul)中253项(li)中的21项 滚动我将不得不在500多页的相同列表中这样做,我想我可以用Javascript注入每个ul,循环并单击每个li,这恰好是21个li中的一个。 看来我不能做这样的事 if(item[i] === ('aasdf'|'basdf'|'cwefw'|'asdfd'|'trehe'|'ferth'|'erthg'|'erthh'|'ierth'|'jeth'|'kerth'|'lerth'|'merth'|'psdfg'|'gre

可能重复:

我必须单击下拉列表(ul)中253项(li)中的21项

滚动我将不得不在500多页的相同列表中这样做,我想我可以用Javascript注入每个ul,循环并单击每个li,这恰好是21个li中的一个。 看来我不能做这样的事

 if(item[i] === ('aasdf'|'basdf'|'cwefw'|'asdfd'|'trehe'|'ferth'|'erthg'|'erthh'|'ierth'|'jeth'|'kerth'|'lerth'|'merth'|'psdfg'|'gregq'|'rsrgs'|'sress'|'srget'|'sergu'|'sdfgsv'))
有没有一种语法上更清晰的方法来写下面这个丑陋的if语句

var item = document.getElementById('myDropdownList').getElementsByTagName('li');

for (i=0;i<item.length;i++){

    if(item[i].innerText === 'Argentina' | item[i].innerText === 'Australia' | item[i].innerText === 'Brazil' | item[i].innerText === 'Canada' | item[i].innerText === 'China' | item[i].innerText === 'Colombia' | item[i].innerText === 'France' | item[i].innerText === 'Germany' | item[i].innerText === 'Indonesia' | item[i].innerText === 'India' | item[i].innerText === 'Italy' | item[i].innerText === 'Japan' | item[i].innerText === 'Malaysia' | item[i].innerText === 'Mexico' | item[i].innerText === 'Philippines' | item[i].innerText === 'Russia' | item[i].innerText === 'South Africa' | item[i].innerText === 'Sweden' | item[i].innerText === 'Switzerland' | item[i].innerText === 'United Kingdom' | item[i].innerText === 'USA'){

    item[i].click();

    }

}
var item=document.getElementById('myDropdownList').getElementsByTagName('li');
对于(i=0;i

类似的东西?使用(除非我读错了问题?在这种情况下,发表评论,我会尽最大努力重新工作我的答案)

您可以使用变量和多个比较,但这仍然很长:

var text = item[i].innerText;
if (text === 'Argentina' | text === 'Australia' | text === 'Brazil' | text === 'Canada' | text === 'China' | text === 'Colombia' | text === 'France' | text === 'Germany' | text === 'Indonesia' | text === 'India' | text === 'Italy' | text === 'Japan' | text === 'Malaysia' | text === 'Mexico' | text === 'Philippines' | text === 'Russia' | text === 'South Africa' | text === 'Sweden' | text === 'Switzerland' | text === 'United Kingdom' | text === 'USA')
或者,您可以使用数组并检查其中是否包含字符串

var matches = ['Argentina','Australia','Brazil','Canada','China','Colombia','France','Germany','Indonesia','India','Italy','Japan','Malaysia','Mexico','Philippines','Russia','South Africa','Sweden','Switzerland','United Kingdom','USA'];
if (~ matches.indexOf(item[i].innerText) …
然而,由于旧IEs中缺少本地语言,人们倾向于使用正则表达式:

var regex = /Argentina|Australia|Brazil|Canada|China|Colombia|France|Germany|Indonesia|India|Italy|Japan|Malaysia|Mexico|Philippines|Russia|South Africa|Sweden|Switzerland|United Kingdom|USA/
if (regex.test(item[i].innerText)) …

你确定你需要点击它们吗?我肯定有更好的选择。这是我第一次看到
~x!==-1
~x
。干得好。顺便问一下,你知道
-~+[]
is?听起来像
1
?但我肯定有一个问题需要解释……我实际上在考虑使用
~~X
(将其称为“circa运算符”)而不是
0 | X
来转换为int。谢谢你,还有这些~运算符,我现在还有更多要研究:)
var regex = /Argentina|Australia|Brazil|Canada|China|Colombia|France|Germany|Indonesia|India|Italy|Japan|Malaysia|Mexico|Philippines|Russia|South Africa|Sweden|Switzerland|United Kingdom|USA/
if (regex.test(item[i].innerText)) …