我正在尝试在JQuery中编写一个if / else语句,它可以通过匹配'IN'或'OUT'(在本例中)来更改元素的类。
例如,我有几个 <DIV>
同 class='IN-something'
要么 class='OUT-something'
。
如果我知道确切的CSS类,下面的方法会有效,但我知道的是它包含'IN'或'OUT'。
所以这样的事情:
if ($(jRow).hasClass('IN-*'))
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
想法?
谢谢!
if ($(jRow).attr('class').indexOf('IN-') !== 1)
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
if ($(jRow).attr('class').indexOf('IN-') !== 1)
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
你可以使用 attribute-contains-prefix-selector
(文档) 如果那将是整个类的价值 (或者至少是第一堂课)。
if ($(jRow).is('[class |= IN]')) {
这也用了 is()
(文档) 方法,看看是否 jRow
是一场比赛。
单击此处测试一个工作示例。 (的jsfiddle)
使用jQuery数据存储“IN”或“OUT”,或者使用符合业务逻辑的名称“IN”或“OUT”添加您自己的属性。这里真正的问题是结合类名。
你也可以突破 IN
和 OUT
并使用多个类。
<tr class = "IN foo"/>
if( $obj.hasClass("in") ){ $obj.removeClass("in").addClass("out") }
var class = $(jRow).attr('class');
if (class.search("IN\-.*")) {
jRow.attr( "class", "OUT-foo" );
}
else {
jRow.attr( "class", "IN-foo");
}