相关疑难解决方法(0)

如何缩短我的条件陈述

我有一个很长的条件语句,如下所示:

if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){
    // do something.
}
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以将这个表达式/语句重构为更简洁的形式.

有关如何实现这一点的任何想法?

javascript if-statement

153
推荐指数
7
解决办法
2万
查看次数

根据值列表检查变量相等性

我正在检查一个变量,例如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)

但这并不完全吸引我,因为我必须为对象中的项目提供冗余值.

有没有人知道对多个值进行相等检查的正确方法?

javascript

122
推荐指数
8
解决办法
11万
查看次数

Javascript:使用OR操作数将SINGLE值与MULTIPLE值进行比较

可能重复:
针对具有多个允许条件的语句Javascript if语句列表检查变量相等性

我必须在下拉列表(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)

javascript if-statement operands

3
推荐指数
2
解决办法
1万
查看次数

检测页面上的任何内容是否正在设置动画

我知道: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)

有人找到了更好/不同的方式吗?特别是在性能方面?

javascript jquery animation jquery-animate

2
推荐指数
1
解决办法
145
查看次数