我想在javascript中为第三个元素添加类。我有这个结构:
<ul class="products-grid row four-columns first">
<li class="item"></li>
<li class="item"></li>
<li class="item add-class-here"></li>
<li class="item"></li>
</ul>
答案 0 :(得分:4)
试试这个:
$( "ul.products-grid li:nth-child(3)").addClass("new_css_class");
答案 1 :(得分:3)
$("ul.products-grid li").eq(2).addClass("classname");
此代码用于将类添加到3rd li元素。您可以对任何元素使用eq。
答案 2 :(得分:1)
您可以使用常规JavaScript进行此操作。
var items = document.getElementsByClassName('item');
items[2].className += " hello";
我实际使用的较短版本:
document.getElementsByClassName('item')[2].className += " hello";
这里有一个有效的例子: https://jsfiddle.net/revem5uh/
既然您还标记了css,我想告诉您有选择器也可以使用css执行此操作。
li.item:nth-child(3){
color: blue;
}
答案 3 :(得分:1)
function doActive(ind) {
var nItem = document.querySelector("#Folder_A li:nth-child(" + ind + ")");
//select nth child under id 'Folder_A'
nItem.classList.add("active");
//Add class 'active' to nth child
}
doActive(3);
//or Call 'doActive' function onclick
#Folder_A li {
padding: 12px;
}
.active {
background-color: green;
}
<ol id="Folder_A">
<li>FileName 1</li>
<li>FileName 2</li>
<li>FileName 3</li>
</ol>
答案 4 :(得分:0)
尝试eq()
并将课程添加到第三个li
,如下所示: -
$('ul.products-grid > li:eq(2)').addClass('classname')
$('ul.products-grid > li.item:eq(2)').addClass('myclass')
&#13;
.myclass {
color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="products-grid row four-columns first">
<li class="item">item</li>
<li class="item">item</li>
<li class="item add-class-here">item</li>
<li class="item">item</li>
</ul>
&#13;