javascript获取ul标签的id,如何才能改变ul内li的背景颜色等属性

如题,我写的代码是这样的,但是没效果,请高手帮忙看看,谢谢!!window.onload=init;functioninit(){varmenu=document.get... 如题,我写的代码是这样的,但是没效果,请高手帮忙看看,谢谢!!
window.onload=init;
function init(){
var menu=document.getElementById("menu");
var lis = ul.getElementsByTagName("li");
for (var i = 0; i < lis.length; i++) {
//鼠标经过事件
lis[i].onmouseover = function () {
var ul = document.getElementById("menu");
var lis = ul.getElementsByTagName("li");
var li = lis[i];
if (li == this) {
li.style.background = "red";
}
}
}
}
展开
 我来答
百度网友951d77399
推荐于2016-01-12 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:131万
展开全部

使用jquery的选择器获取ul里的所有li元素,然后用jquery提供的.css(name, value)方法修改所有li的css属性,即background-color

如果ul的id的变量名为ulid

$("li","#" + ulid).css("background-color","#ccc");

这个用到了jquery的选择器规则$(selector1, content)

selector1是一个选择器。content可以是一个选择器、一个jquery dom对象或者原生dom对象,上面的代码中conten是一个选择器

这个写法的意思是选择content中所有符合selector1的元素,在上面的代码里面就表示“选择id为ulid变量值的ul中所有的li元素”

.css(name, value)方法是改变名称为name的css属性为value,有数值单位的可以省去单位,如padding 30px的值可以直接写.css("padding", 30)

.css(name)是获取名称为name值的css属性值,如.css("padding")返回padding的值,不带单位,如.css("padding")返回30

源o0Forever
推荐于2018-02-11 · TA获得超过454个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:176万
展开全部

用jquery写个给你行吗?jquery你自己下个~和这段代码放一起就行了

<script src="jquery.js"></script>
<script>
function changebackground(id){
if(id=='li1'){
$('#'+id).css({background:"red"});
}
if(id=='li2'){
$('#'+id).css({background:"blue"});
}
if(id=='li3'){
$('#'+id).css({background:"yellow"});
}
if(id=='li4'){
$('#'+id).css({background:"green"});
}
};
</script>
<body>
<div style="width:100px;height:400px" id="menu">
<li id="li1" style="width:100px;height:100px" onmouseover="changebackground(this.id)">1</li>
<li id="li2" style="width:100px;height:100px" onmouseover="changebackground(this.id)">2</li>
<li id="li3" style="width:100px;height:100px" onmouseover="changebackground(this.id)">3</li>
<li id="li4" style="width:100px;height:100px" onmouseover="changebackground(this.id)">4</li>
</div>
</body>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lightmei001
2013-11-08 · 超过15用户采纳过TA的回答
知道答主
回答量:49
采纳率:100%
帮助的人:37.7万
展开全部
直接用css在li上面加上hover处理就可以,没必要用js
而且li == this这个是有问题,这个this对象用的并不正确。
追问
用hover是处理超链接吧,可是我想改变背景颜色啊
追答
hover是CSS的鼠标伪事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cs903016
推荐于2017-11-26 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1725万
展开全部
你不就想改变背景么,有什么难度么?直接给个id就可以了!
不会直接q我,244267510
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式