我有一个很长的条件语句,如下所示:
if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){
// do something.
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以将这个表达式/语句重构为更简洁的形式.
有关如何实现这一点的任何想法?
我正在检查一个变量,例如foo,与多个值的相等性.例如,
if( foo == 1 || foo == 3 || foo == 12 ) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
关键是这个繁琐的任务代码相当多.我想出了以下内容:
if( foo in {1: 1, 3: 1, 12: 1} ) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但这并不完全吸引我,因为我必须为对象中的项目提供冗余值.
有没有人知道对多个值进行相等检查的正确方法?
我必须在下拉列表(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' …Run Code Online (Sandbox Code Playgroud) 我知道:animated选择器,但目前正在遇到旧IE的(可能是少数几个)性能问题(如图).我觉得这可能是我测试任何页面动画的方式.
目前我正在循环一段时间,核心测试正在进行$('*').is(':animated').这$('*')就是我所担心的......但是因为我不知道在我的插件下动画的div/etc是什么,我不知道怎么做!
var testAnimationInterval = setInterval(function () {
if ( ! $('*').is(':animated') ) { // all done animating
clearInterval(testAnimationInterval);
animationsFinished(); // callback function
}
}, 300);
function animationsFinished() {
// do whatever
}
Run Code Online (Sandbox Code Playgroud)
有人找到了更好/不同的方式吗?特别是在性能方面?