Closed
Bug 263235
Opened 20 years ago
Closed 20 years ago
element.setAttribute('className','value') differs from element.className='value'
Categories
(Core :: DOM: CSS Object Model, defect)
Tracking
()
VERIFIED
DUPLICATE
of bug 197019
People
(Reporter: jescribn, Unassigned)
Details
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; H010818; .NET CLR 1.1.4322)
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; rv:1.7.3) Gecko/20040913 Firefox/0.10.1
element.setAttribute('className','abc') does not update the appearance of an
object to match class style 'abc', even though element.className's value has
been changed to 'abc'. However, using element.className='abc' does update the
appearance. Both versions work in Internet Explorer. I believe both are valid
implementations. Example code:
<style>
.red {color:#ff0000;}
.green {color:#00ff00;}
.blue {color:#0000ff;}
</style>
<div id="a" class="red">Text</div><br />
<a href="#" onClick="document.getElementById('a').setAttribute
('className','blue')">getElementbyID('a').setAttribute('className','blue')
</a><br>
<a href="#" onClick="document.getElementById
('a').className='green'">getElementbyID('a').className='green'</a><br>
Reproducible: Always
Steps to Reproduce:
1.Run the code above in mozilla or firefox
2.Click the option for blue, note that the class is not visually updated.
3.Click the option for green, note that the class is visually updated.
Actual Results:
Results described in the steps above.
Expected Results:
The browser should have visually updated the class in both circumstances.
Comment 1•20 years ago
|
||
The attribute is called "class", not "className".
change:
getElementbyID('a').setAttribute('className','blue')
to:
getElementbyID('a').setAttribute('class','blue')
and it works as expected.
So I'm pretty sure this is INVALID. Reporter- please comment if you disagree.
Comment 2•20 years ago
|
||
*** This bug has been marked as a duplicate of 197019 ***
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
Reporter | ||
Comment 3•20 years ago
|
||
Referenced DOM HTML L2
Using "class" instead of "className" produces the correct functionality,
however "class" is not the valid name for this attribute. According to DOM
HTML L2 "className" is used because class "collides with class definitions
naming conventions." It was "className" in DOM L1, too.
URL:
http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-58190037
Tnx.
Status: RESOLVED → UNCONFIRMED
Resolution: DUPLICATE → ---
Reporter | ||
Comment 4•20 years ago
|
||
Read 197019 in more detail - understand point.
*** This bug has been marked as a duplicate of 197019 ***
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago → 20 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•