js修改html不成功,为什么这段代码中用js修改css样式中的display属性却不成功?

这篇博客讨论了JavaScript代码中getByClass方法存在的问题,该方法用于获取具有特定class名的元素数组。文章指出,对于changeshow和noneshow函数中对CSS属性的操作方式有误,并提供了修正后的代码示例。修复后的代码确保了当鼠标经过li标签时正确显示和隐藏具有'showmenu'类的元素。
摘要由CSDN通过智能技术生成

getByClass() 这个方法写的有问题,你这个方法目的是获取className的元素数组。

var s = getByClass('li');     但是你用的是 li,是tagName

function changeshow(){

var p = getByClass('showmenu');   这里用的是className

p.style.display = "";    p是数组   jquery对象可以用数组.css();这样写,你这样写是错的

写一个循环,然后赋值,并且最好不要用“”,用block就行了。

}

noneshow  这个一样的错误

这是改好的

无标题文档

*{

marign: 0;

padding: 0;

}

.box{

width: 500px;

height: 100px;

margin: 0 auto;

}

li{

width: 50px;

height: 30px;

border: solid #000 1px;

float: left;

list-style: none;

margin-right: 15px;

}

.showmenu{

border: #000 solid 1px;

width: 200px;

display: none;

}

function getByClass(cls){

var eles = [];

var elements = document.getElementsByTagName('*');

for(var i = 0; i < elements.length; i++){

if(elements[i].tagName.toLowerCase() == cls){

eles.push(elements[i]);

}

}

return eles;

}

window.onload = function(){

var s = getByClass('li');

var length = s.length;

for(var i=0; i

s[i].onmouseover = changeshow;

s[i].onmouseout = noneshow;

}

}

function changeshow(){

var p = document.getElementsByClassName('showmenu');

var length = p.length;

for(var i=0;i

p[i].style.display = "block";

}

}

function noneshow(){

var p = document.getElementsByClassName('showmenu');

var length = p.length;

for(var i=0;i

p[i].style.display = "none";

}

}

  • 菜单1
  • 菜单2
  • 菜单3
  • 菜单4
  • 菜单5

鼠标经过li标签后应该显示的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值