Ale*_*key 3 javascript if-statement operands
我必须在下拉列表(ul)中单击253项(li)中的相同21个.
滚动我将不得不为500多个页面上的相同列表执行此操作,我想我可以Javascript注入每个ul,循环并单击每个li恰好是21之一.看来我做不了类似的事情
if(item[i] === ('aasdf'|'basdf'|'cwefw'|'asdfd'|'trehe'|'ferth'|'erthg'|'erthh'|'ierth'|'jeth'|'kerth'|'lerth'|'merth'|'psdfg'|'gregq'|'rsrgs'|'sress'|'srget'|'sergu'|'sdfgsv'))
Run Code Online (Sandbox Code Playgroud)
是否有一种语法上更清晰的方式来编写下面这个丑陋的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();
}
}
Run Code Online (Sandbox Code Playgroud)
var options = ['Argentina', 'Australia', 'Brazil', 'Canada', ...];
if (options.indexOf(item[i].innerText) !== -1){
// item[i] was found in options
}
Run Code Online (Sandbox Code Playgroud)
类似的事情?使用Array.indexOf(除非我误读了问题?在这种情况下发表评论,我会尽力重新回答我的答案)
您可以使用变量和多重比较,但这仍然很长:
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')
Run Code Online (Sandbox Code Playgroud)
或者你可以只使用一个数组并检查字符串是否包含在其中.
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) …
Run Code Online (Sandbox Code Playgroud)
然而,对于复杂的!= -1比较和indexOf旧IE中缺乏原生,人们倾向于使用正则表达式:
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)) …
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10425 次 |
| 最近记录: |