在if语句中使用通配符的数组检查元素ID

时间:2013-12-19 12:24:00

标签: javascript jquery arrays

我可以使用

检查数组中的对象ID
if (obj[0].id != "myID") 

我想用通配符做同样的事情,所以

if (obj[0].id != "myID*")

将排除#myID1,#myID2,#myID3等

我必须留在if语句进行此检查,我无法调用外部函数。

如果不可能,我可以使用obj [0] .className而不是.id:

if (obj[0].className != "myClass")

但除了myClass之外,每个对象都有几个类。

jQuery是允许的,虽然我不确定它会有所帮助。

5 个答案:

答案 0 :(得分:2)

如果你正在使用jQuery(你已经添加了标签),为什么不使用选择器?

$('*:not[id^="myID"]')

这将获取属性不以myID开头的所有元素。您可以在if语句中使用它,如下所示:

if($(obj[0]).is('[id^="myID"]'))

答案 1 :(得分:1)

使用String.prototype.indexOf可能是一种可能的方法:

if (obj[0].id.indexOf('myID') !== 0) {
    // ID does not start with 'myID'
}

答案 2 :(得分:1)

您可以使用myID检查前4个字符是.substring()

if(obj[0].id.substring(0,4) != 'myId'){  }

如果您想使用jQuery,那么检查id 类非常容易:

if(!$(obj[0]).is('[id^=myId]')){  }

if(!$(obj[0]).hasClass('myClass')){  }

答案 3 :(得分:1)

您甚至可以使用正则表达式:

if( !/(myId)/g.test( obj[0].id.indexOf('myID') ) ) {

}

我可以建议你这个非常好的游乐场来测试你的正则表达式:

http://lea.verou.me/regexplained/

这个谈话:

http://www.youtube.com/watch?v=EkluES9Rvak

正则表达式可以非常强大。也许你的情况并不难以与其他技术一起管理,但你会发现正则表达式在将来对其他问题非常有用。

答案 4 :(得分:1)

首先,你绝对可以使用像这样的id属性选择器

if(!$(obj[0]).is("[id^=myID]"))

但是,为什么不为所有这些元素分配一个类呢?这听起来像是一种更合理的方法,允许

if(!$(obj[0]).hasClass("myClass"))