jQuery - 为什么.att不替换属性值?

q09*_*987 0 jquery

根据手册如下:

http://api.jquery.com/attr/ 
attr( attributeName, value ) 
Run Code Online (Sandbox Code Playgroud)

我应该能够替换所选元素的属性值.

             <div id="keynote1Fld" class="row ">
                <label for="keynote1" class="labeloptional">Topic 1</label>
                <div class="collection">
                 <input type="text" class="largetextfield" maxlength="96" size="96" value="" id="keynote1" name="keynote1" />
                </div>
             </div>
Run Code Online (Sandbox Code Playgroud)

我需要将keynote1的label类值从labeloptional替换为label.

这是做了什么:

$("label[for=keynote1]").att('class', 'label');
Run Code Online (Sandbox Code Playgroud)

但是,执行上述语句后,keynote1标签的类值仍为"labeloptional".

为什么?

谢谢

Jef*_*ert 7

您需要使用attratt.


但是,如果您要更改课程,则不应使用attr().

你应该做的是使用removeClass()addClass().

$('label').removeClass('oldClass').addClass('newClass');
Run Code Online (Sandbox Code Playgroud)

这样,您将不会覆盖可能分配给标记的任何其他类.