怎么才能在不同的ul中的li里用js实现隔行变色,如果ul的id为list

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么才能在不同的ul中的li里用js实现隔行变色,如果ul的id为list相关的知识,希望对你有一定的参考价值。

怎么才能在不同的ul中的li里用js实现隔行变色,如果ul的id为list

<style type="text/css">
*
margin:0;
padding:0;

#list
margin:100px;
list-style:none;
width:200px;

#list li
height:25px;
line-height:25px;
text-align:center;
border:1px solid #ccc;
/*margin-bottom:-1px;*/

.list1
background:pink;

.list2
background:#CCFFFF;

</style>
</head>
<body>

<ul id="list">
<li>
第一行
</li>
<li>
第二行
</li>
<li>
第三行
</li>
<li>
第四行
</li>
<li>
第五行
</li>
<li>
第六行
</li>
</ul>

<script language="javascript">

var list = document.getElementsByTagName("li");
var len = list.length;
for (i=0;i<len;i++)

if (i%2==0)

list[i].className = "list1";

else

list[i].className = "list2";




</script>
大致是这样,但是要是专属于class=“list”的ul的li颜色变化而不是别的ul


var list = document.getElementsByTagName("ul"); // 查找所有ul
var len = list.length;
for (j = 0; j < len; j++) 
    if (list[j].className != 'list') 
        // 如果ul的className不是list
        // 那么执行下一次循环
        continue;
    
    var li = list[j].children; // ul下的li
    var liLen = li.length;
    for (i = 0; i < liLen; i++) 
        if (i % 2 == 0) 
            li[i].className = "list1";
         else 
            li[i].className = "list2";
        

    



参考技术A 也不用这么麻烦 你直接给每个li一个class(各行class相同)用css控制就好了追问

不是的,要用程序输出来的,sql语句输出来的,css不好控制的

JavaScript 隔行变色

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>标题</title>
<style>
li {
list-style: none
}
</style>
</head>
<body>

<ul id="ul1">
<li>我是第1个li标签</li>
<li>我是第2个li标签</li>
<li>我是第3个li标签</li>
<li>我是第4个li标签</li>
<li>我是第5个li标签</li>
<li>我是第6个li标签</li>
<li>我是第7个li标签</li>
<li>我是第8个li标签</li>
<li>我是第9个li标签</li>
<li>我是第10个li标签</li>
</ul>

<script>
//1.获取元素
var ul1 = document.getElementById("ul1");
var lis = ul1.getElementsByTagName("li");

//2.遍历数组,拿到每一个li标签。
for(var i = 0 ; i < lis.length; i++){
//2.1 给每一个li标签设置背景色
if(i %2 == 0){
lis[i].style.backgroundColor = "pink";
}else {
lis[i].style.backgroundColor = "skyblue";
}

 

var bgc; // 默认颜色 全局变量
// //2.2 给每一个li标签注册一个鼠标移入事件
lis[i].onmouseover = function () {
//鼠标移入到某一个li标签上,修改他的颜色之前,把他原来的颜色给保存起来。
bgc = this.style.backgroundColor;
this.style.backgroundColor = "red";
}

// //2.3 给每一个li标签注册一个鼠标移出事件
lis[i].onmouseout = function () {
//鼠标移出当前这个li标签,那么这个标签的颜色就要还原。
this.style.backgroundColor = bgc;
}
}

</script>
</body>
</html>














































以上是关于怎么才能在不同的ul中的li里用js实现隔行变色,如果ul的id为list的主要内容,如果未能解决你的问题,请参考以下文章

jq 个性的隔行变色

jQuery----奇偶选择器和索引选择器

JavaScript 隔行变色

js - 03课-01 隔行变色, 鼠标移入移出变色

Vue.js 的一个小技巧---利用v-for中的index值,来实现隔行变色

关于 li 点击变色的问题,可用JS来解决。