我想知道如何改变partcular的风格<;李>;在特定情况下<;ul>;通过javascript
我想知道如何通过JavaScript在特定的我想知道如何改变partcular的风格<;李>;在特定情况下<;ul>;通过javascript,javascript,css,Javascript,Css,我想知道如何通过JavaScript在特定的中更改特定的样式 我的代码是这样的 <ul id="menu"> <li id="number1"><a href="#1">1</a></li> <li id="number2"><a href="#2">2</a></li> </ul> 现在让我们假设我想使用JavaScript更改ul>菜单的li#numbe
中更改特定
的样式
我的代码是这样的
<ul id="menu">
<li id="number1"><a href="#1">1</a></li>
<li id="number2"><a href="#2">2</a></li>
</ul>
现在让我们假设我想使用JavaScript更改
ul>菜单的li#number1
的背景色。这是纯JavaScript的解决方案:
var el = document.querySelector('#number1');
el.addEventListener('click', function(e) {
el.style.backgroundColor = 'blue';
});
下面是一个使用javascript和按钮的解决方案
<script>
function doSth(){
var nodes = document.getElementById("menu").getElementsByTagName("li");
for(var i=0; i<nodes.length; i++) {
if (nodes[i].id == 'number2') {
nodes[i].style.background = "blue";
}
}
}
</script>
<ul id="menu">
<li id="number1"><a href="#1">1</a></li>
<li id="number2"><a href="#2">2</a></li></ul>
<input type="button" onClick="doSth();" value="Click here"/>
函数doSth(){
var节点=document.getElementById(“菜单”).getElementsByTagName(“li”);
对于(var i=0;i当您想更改样式时,单击、悬停……?为什么不使用jquery?jquery可以很容易地处理此类问题。我想在单击时更改样式查找快速jquery教程。如果您的问题是关于如何在单击某个内容时执行某项操作,如您上面的评论所示,请添加该问题你自己回答这个问题的信息。另外,如果你想在单击元素本身或单击按钮时更改颜色,请澄清。要有点挑剔,直接在元素上设置样式并不是真正的最佳做法;这可能是使用$.css
等进行jQuery风格编程的后遗症。最好是这样在元素上设置一个类。为了避免闭包,你可以使用getElementById
提供HTML4向后兼容性,你可以使用this
而不是el
来提高单击函数的效率。当然,你可以对这些事情进行挑剔。重构当然是由操作决定的,而我同意直接添加类而不是CSS。我之所以使用它,是因为OP在上面的评论中引用了.style
语法。当您可以使用getElementById
直接跳转到DOM注释时,为什么要迭代DOM注释以查找具有特定ID的类?这是因为提问者想要。请仔细阅读他的问题。他想选择id='number1'的li,而选择id='menu'的ul。这仍然是多余的,不管它位于何处,它应该仍然是唯一的元素,我知道文档中只能有一个id,所以选择id就可以了。但是提问者想要我根据问题回答的方式。为什么建议无效为OP提供客户解决方案,而不是提供不完全符合标准但仍能满足其要求的更好解决方案?您不应该假设OP知道他们要求的是低效解决方案。