如果该元素尚未具有该属性,我将如何向该元素添加属性?
if (' this does not have class=selected') {
$(this).addClass('selected');
}
答案 0 :(得分:6)
if(!$(this).attr('name')) {
$(this).attr('name', 'value');
}
应该这样做。
答案 1 :(得分:3)
如果您正在专门讨论课程,那么请继续添加课程。如果它已经存在,则不会再添加两次。
$(this).addClass('selected'); // will only add the class if it doesn't exist
我怀疑第一次测试课程会更有效率。
答案 2 :(得分:2)
jQuery文档是你的朋友! :) http://api.jquery.com/category/css/
您可能正在寻找HasClass
http://api.jquery.com/hasClass/
$('#mydiv').hasClass('foo')
答案 3 :(得分:1)
您可以使用属性而不是选择器。这不仅适用于类,也适用于任何属性
if($('#elemid[class!="myclass"]').length) {
$('#elemid').addClass('otherClass');
}
当然如前所述,如果你想要将你的检查添加到类中,只需添加它即可。这没有坏处。
答案 4 :(得分:0)
在添加类之前,没有必要检查并查看该类是否已存在。浏览jQuery源代码(https://github.com/jquery/jquery/blob/master/src/attributes.js,搜索addClass
),addClass
似乎无效班级已经存在。因此,首先检查是没有意义的。