javascript – 如何在JQuery中使用IndexOf

前端之家收集整理的这篇文章主要介绍了javascript – 如何在JQuery中使用IndexOf前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
if($('#this').val().indexOf('4289')){
    Do something
else
    Do something.

这只适用于4289,
当我尝试使用’或’添加其他要索引的数字时,它不起作用.我该怎么把其他数字呢例如

IndexOf('4289||78843')

我想要检查这个数字,如果输入字段中的数字不是其中的一个,则返回错误.

当一个人再次访问这个领域时,这更多的是死亡.

$('#Zip').blur(function(){
        if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){
        $('#Status_Zip').html("No way.")
        $(this).alterClass('*_*','Success')
        return false;
        }else{$('#Status_Code').hide()
        $(this).alterClass('*_*','Error')
        $(this).css('border-color','#F00').css('background-color','#FFC').effect("pulsate",{times:4},2)
            return true;
        }
    })

解决方法

这是因为它会寻找字符串’4289 || 78843′,这在我假设的目标中不存在.逻辑运算符不能被抛弃在任何地方,只有逻辑运算的实际值才可以.这样的事情
if(($('#this').val().indexOf('4289') > -1) ||
   ($('#this').val().indexOf('78843') > -1))

indexOf()函数的返回值是该值在目标值中的数字索引,如果未找到则返回-1.因此,对于您要查找的每个值,您需要检查索引是否为> -1(这意味着它在字符串中找到).把整个条件和||它有另一个条件,这是一个逻辑操作.

编辑:关于你的评论,如果你想将它抽象成一些更干净,更通用的东西,你可以将它解压缩到自己的函数中,该函数遍历一个字符串集合,如果任何一个都在目标字符串中,则返回true.也许这样的事情:

function isAnyValueIn(target,values) {
    for (var i = 0; i < values.length; i++) {
        if (target.indexOf(values[i]) > -1) {
            return true;
        }
    }
    return false;
}

甚至可以使用.forEach()在数组上做一个更优雅的方法,但这至少表明了这个想法.然后在代码的其他地方,您将构建数组数组并调用函数

var values = ['4289','78843'];
var target = $('#this').val();
if (isAnyValueIn(target,values)) {
    // At least one value is in the target string
}

猜你在找的jQuery相关文章