如果尚未添加类(或属性),则添加它

时间:2012-05-11 20:58:36

标签: jquery

如果该元素尚未具有该属性,我将如何向该元素添加属性?

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

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

5 个答案:

答案 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

我怀疑第一次测试课程会更有效率。

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

答案 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似乎无效班级已经存在。因此,首先检查是没有意义的。