4

如果该元素还没有该属性,我将如何向该元素添加该属性?

if (' this does not have class=selected') {

    $(this).addClass('selected');
}
4

5 回答 5

7
if(!$(this).attr('name')) {
   $(this).attr('name', 'value');
}

应该这样做。

于 2012-05-11T20:59:25.293 回答
3

如果您专门谈论课程,那么请继续添加它。如果它已经存在,则不会添加两次。

$(this).addClass('selected'); // will only add the class if it doesn't exist

我怀疑对班级的第一次测试会更有效率。

现场演示:http: //jsfiddle.net/2sLd5/

于 2012-05-11T21:01:59.097 回答
2

jQuery 文档是你的朋友!:) http://api.jquery.com/category/css/

您可能正在寻找 HasClass

http://api.jquery.com/hasClass/

$('#mydiv').hasClass('foo')
于 2012-05-11T20:59:51.843 回答
1

您可以使用属性而不是选择器。这不仅适用于类,也适用于任何属性

if($('#elemid[class!="myclass"]').length) {
    $('#elemid').addClass('otherClass');
}

当然,如前所述,如果您想添加您检查的类,只需添加它。这没有什么坏处。

于 2012-05-11T21:13:29.820 回答
0

在添加类之前,没有必要检查类是否已经存在。查看 jQuery 源代码(https://github.com/jquery/jquery/blob/master/src/attributes.js,搜索),如果该类已经存在addClass,则似乎什么都不做。addClass因此,没有必要先检查。

于 2012-05-11T21:15:09.550 回答