Javascript 更改<;李>;元素
我是javascript新手。我想在单击Javascript 更改<;李>;元素,javascript,html,Javascript,Html,我是javascript新手。我想在单击元素时将其背景从白色更改为红色。单击另一个元素后,希望将此元素转换为红色,并将其余元素更改为白色。我成功了,但最后一次没有受到影响 函数func(li){ var x=document.querySelectorAll(“li”); var i; 对于(i=0;i
函数func(li){
var x=document.querySelectorAll(“li”);
var i;
对于(i=0;i
比林奇
我只需执行此操作,无需进行条件检查,只需从所有li中删除红色背景,并在单击li对象时放置红色背景即可
函数func(li){
var x=document.querySelectorAll(“li”);
var i;
对于(i=0;i
比林奇
- ikinci
- ucuncu
- dorduncu
试试这个版本
window.addEventListener(“加载”,函数(){//on page load
document.querySelector(“ul”).addEventListener(“单击”,函数(e){//单击ul
var clickedObject=e.target;
如果(clickedObject.tagName==“LI”){//它是LI吗
document.queryselectoral(“.reng”).forEach(函数(li){//reset all
li.style.backgroundColor=“白色”;
});
clickedObject.style.backgroundColor=“红色”//为单击的LI着色
}
})
})
比林奇
伊坎奇
ucuncu
- dorduncu
使用querySelectorAll
将所有li设置为白色,然后将单击的li设置为红色
函数func(li){
var a=document.querySelectorAll('li');
a、 forEach((e)=>e.style.backgroundColor=“白色”)
li.style.backgroundColor=“红色”;
}
比林奇
- ikinci
- ucuncu
- dorduncu
函数func(li){
var x=document.querySelectorAll(“li”);
var i;
对于(i=0;i
比林奇
- ikinci
- ucuncu
- dorduncu
这段代码写得不好
var x = document.querySelectorAll("li");
var i;
// we iterate over all LI elements
for (i = 0; i < x.length; i++) {
if(x[i].style.backgroundColor == "red"){
x[i].style.backgroundColor = "white";
console.log('W');
}
// if given by index LI element backgroundColor is not "red"
// then LI clicked element backgroundColor is set to "red"
// so at first if you click on ANY (including LAST) element
// from list the LAST element property is at first set to "red"
// - which is not visible because in next
// for(..) iteration this LAST element is set to 'white' !!!
// etc etc
else {
li.style.backgroundColor = "red";
console.log('W');
}
var x=document.querySelectorAll(“li”);
var i;
//我们迭代所有LI元素
对于(i=0;i
如果(li.style.backgroundColor==“white”)始终正确,则不建议使用内联事件处理程序。我认为这与您正在搜索的相同。[@Omikabira not taged jQueryGreat!谢谢!