关于类:JQuery if / else语句匹配通配符CSS名称

JQuery if/else statement matching a wildcard CSS name

我尝试在jquery中编写if/else语句,它可以通过匹配"in"或"out"(在本例中)来更改元素的类。

例如,我有几个

class='IN-something'class='OUT-something'

如果我知道确切的CSS类,下面的内容就可以了,但我只知道它包含"in"或"out"。

所以像这样:

1
2
3
4
if ($(jRow).hasClass('IN-*'))
{jRow.attr("class","OUT-foo" );}
else  
{jRow.attr("class","IN-foo");}

思想?谢谢!


1
2
3
4
if ($(jRow).attr('class').indexOf('IN-') !== 1)
  {jRow.attr("class","OUT-foo" );}
else  
  {jRow.attr("class","IN-foo");}


你可以使用的attribute-contains-prefix-selector(文档),如果这将是全级的值(或在最小的那一级)。 </P >

1
if ($(jRow).is('[class |= IN]')) {

这也is()(文档)的使用的方法.如果这是一个jRow媲美。 </P >

点击这里对测试工作的实例。(jsfiddle) </P >

编辑: </P >

如果你的一点是,你不会知道你在foo,这些对retain它,我会做的某样本instead: </P >

1
2
3
jRow.attr('class', function(i,cls) {
    return cls.indexOf('IN') > -1 ? cls.replace('IN','OUT') : cls.replace('OUT','IN');
});

你可以通的功能作为第二研究参数对attr()(文档)的方法。这有2个参数的功能。第一流的指标,在迭代求解。第二研究的电流值的属性。 </P >

返回的值的值,那将是集。 </P >


使用jQuery的数据存储在"今天"或"外",或添加一个属性与一个你自己的商业逻辑的情况下说,"在那名"或"退出"。在真实的问题在这里混合的类名称。 </P >

你也可以打破的IN门诊和OUT和使用多类。 </P >

</P >

1
if( $obj.hasClass("in") ){ $obj.removeClass("in").addClass("out") }


1
2
3
4
5
6
7
var class = $(jRow).attr('class');
if (class.search("IN\-.*")) {
    jRow.attr("class","OUT-foo" );
}
else {
    jRow.attr("class","IN-foo");
}