Javascript更改元素的类
我有Javascript更改元素的类,javascript,class,Javascript,Class,我有ul列表,我需要用javascript更改标记之一的类: <ul> <li>...</li> <li class="something"> <- need to change this class to "myclass" (javascript goes here)</li> <li>..</li> </ul> var listitems = document.getElem
ul
列表,我需要用javascript更改
标记之一的类:
<ul>
<li>...</li>
<li class="something"> <- need to change this class to "myclass" (javascript goes here)</li>
<li>..</li>
</ul>
var listitems = document.getElementsByTagName("li");
for (int i = 0; i < listitems.length; i++)
{
if (listitems[i].className == "something")
{
listitems[i].className = "new class name";
break;
}
}
- 使用jQuery(自然):
使用JQuery:
$('ul li:nth-child(2)').attr('class', 'myclass');
使用常规javascript:
<ul>
<li>...</li>
<li class="something"> <- need to change this class to "myclass" (javascript goes here)</li>
<li>..</li>
</ul>
var listitems = document.getElementsByTagName("li");
for (int i = 0; i < listitems.length; i++)
{
if (listitems[i].className == "something")
{
listitems[i].className = "new class name";
break;
}
}
由于jquery似乎有很多答案,而且并不总是可以使用jquery(例如,如果您的客户/公司不允许您使用它!),这里有一个简单的javascript示例
// Where 'e' is the element in question, I'd advise using document.getElementById
// Unless this isn't possible.
// to remove
if ( e.className.match(/something/) ) {
e.className = e.className.replace("something", "")
}
// to add back in
if ( !e.className.match(/something/) ) {
e.className += " something"
}
这将适用于多个类,例如:
<li class="something another">...</li>
还请注意,此代码使用“something”类更改了所有li元素。还请注意,他的示例仅包含“something”类的一个实例:)这只适用于元素上的唯一类something,而不适用于class=“something anotherthing”。这将适用于OP作为示例发布的内容。将其更改为与其他类名一起使用只是一个小细节。我有意不使示例代码过于复杂。这将删除元素上可能需要的任何类。最好使用$('…').addClass()和$('…').removeClass()。抱歉,但他确实说过他希望实际的类是“myclass”
。否决这个答案太荒谬了。有人知道为什么否决这个答案吗?我遗漏了一个错误吗?他们只是jQuery的传道者,投票反对他们圣杯的人。如果我不知道如何从头开始编写真正的JavaScript,因为大多数jQuery传道者往往无法做到,我也会投票反对你的答案,呵呵!