如何利用JS实现在li中添加或删除class属性

JavaScript017

如何利用JS实现在li中添加或删除class属性,第1张

可以使用jQuery的attr方法来实现对某一元素的的class的属性的添加或者删除,attr() 方法设置或返回被选元素的属性值.根据该方法不同的参数,其工作方式也有所差异,可以使用removeclass来删除class属性。

工具原料:编辑器、浏览器

1、为li添加class属性:

为某个li元素添加class=“special”的属性

$('li').attr('class','special')

2、删除class属性:

 $("li").removeClass("special")

})

如果只是个视觉修饰而不是逻辑功能的话,能用css实现的效果就不要用js去做,css3的选择器:

nth-of-type()可以判断奇偶,虽然有可能低版本IE不支持,但是视觉效果的话低版本放弃就完了。

<style>

ul li:nth-of-type(odd){奇数行样式}   

ul li:nth-of-type(even){偶数行样式}

<style>  

如果我说服不了你,一定要js的话,那么继续:

 

<script id="jquery_182" type="text/javascript" class="library"

 src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>

<meta charset="utf-8" />

<ul id="list">

    <li><a href="#">1</a></li>

    <li><a href="#">2</a></li>

    <li><a href="#">3</a></li>

</ul>

<script>

function CheckLI() {

    var obj = document.getElementById("list").getElementsByTagName("li")//取得#list下所有li

    for(var i=0i<obj.lengthi++){//循环出每个li

        //下面两句中添加class用的jquery的addClass()方法,需要载入JQ才支持,js原生的方法需要IE10才支持,兼容的方法要另外写函数,手打的,直接最简单的JQ实现

    if(i % 2 == 0) {$(obj[i]).addClass("ou")}//如果被2整除是偶数

        else {$(obj[i]).addClass("ji")}//否则是奇数

    }

}

window.onload = CheckLI//网页载入后执行以上函数

</script>

<style>

    .ji{color: red}

    .ou{color: yellow}

</style>

你应该是想实现风琴菜单或者类似效果的吧?推荐使用jquery(轻量级的js封装组件)很方便的实现了风琴菜单。一定要用js的话代码太长了我给你点思路。首先为元素绑定onclick事件,一级li和二级li区别对待。你没说清楚哪里不明白,我就猜一下你是不知道如何选中二级节点的父节点。选中当前节点的父节点的方法是this.parentNode就是当前节点的父节点了。你可以if this.onclick 那么this.parentNode.class就改为什么什么。你试试