用js控制父元素中的子元素,不要用css,大神请进

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用js控制父元素中的子元素,不要用css,大神请进相关的知识,希望对你有一定的参考价值。

举个例子
<div class="dad">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

</div>

一共有10个li
他们的背景颜色都是#000黑色
但我想改变从第四个li开始到第十个li的背景颜色,变成red;
用js来做,不要用css,我就想知道如何操作

var oLis = document.getElementsByClassName("dad")[0].getElementsByTagName("li");
for(var i = 3;i<oLis.length;i++)
oLis[i].style.backgroundColor = "red";

这个是原生js写的,因为用的getElementsByClassName有兼容性问题,我就不写解决的函数了

$(function()
 $(".dad").find("li").slice(3).css("backgroundColor","red")
)

这个是用JQ写的


这两个你要哪个拿哪个,不懂追问,反正这是小问题,满意劳烦采纳,实在需要原声兼容我补充给你

参考技术A <html>
<script src="jquery-1.9.1.js"></script>
<style type="text/css">
liwidth:20px;height:20px;background:black;margin-top:20px;
</style>
<body>
<div class="dad">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

</div>

<script>
$(function()
var obj = $(".dad").find("li");
$.each(obj,function(k,v)
if(k >= 3)
$(this).css("background","red");

)
);
</script>
</body>
</html>本回答被提问者采纳

以上是关于用js控制父元素中的子元素,不要用css,大神请进的主要内容,如果未能解决你的问题,请参考以下文章

求大神指教啊,div+css,怎样用css控制一个div层的高度等于另一个层的高度,只用css控制不用js

DOM中如何获取一个元素的子元素?

Jquery 获取子元素问题

​父元素以relative方式定位的子元素怎么用js获取子元素到网页顶部的距离

CSS Flexbox:居中的子元素溢出位置固定的父元素

js中父元素如何获得元素的子元素么