Neo*_*nig 13 jquery if-statement class wildcard indexof
我正在尝试在JQuery中编写一个if/else语句,它可以通过匹配'IN'或'OUT'(在本例中)来改变元素的类.
例如,我有几个<DIV>与class='IN-something'OR class='OUT-something'.
如果我知道确切的CSS类,下面的方法会有效,但我知道它包含'IN'或'OUT'.
所以像这样:
if ($(jRow).hasClass('IN-*'))
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
Run Code Online (Sandbox Code Playgroud)
想法?谢谢!
if ($(jRow).attr('class').indexOf('IN-') !== 1)
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
Run Code Online (Sandbox Code Playgroud)
如果这将是整个类值(或至少是第一个类),您可以使用attribute-contains-prefix-selector(docs).
if ($(jRow).is('[class |= IN]')) {
Run Code Online (Sandbox Code Playgroud)
这也使用is()(docs)方法来查看是否jRow匹配.
编辑:
如果你的观点是你不知道是什么foo,你需要保留它,我会做这样的事情:
jRow.attr('class', function(i,cls) {
return cls.indexOf('IN') > -1 ? cls.replace('IN','OUT') : cls.replace('OUT','IN');
});
Run Code Online (Sandbox Code Playgroud)
您可以将函数作为第二个参数传递给attr()(docs)方法.该函数有2个参数.第一个是迭代中的当前索引.第二个是属性的当前值.
返回值是将要设置的值.