Javascript 遍历 <li> 列表并分配事件 (onitemclick) 处理程序不起作用 - 为什么?
Javascript iterate through <li> list and assign event (onitemclick) handlers not working - why?
我在本练习中的任务是在有人单击列表中的 li 项时切换它们的 "done" 属性。我找到了其他方法,但这个方法对我不起作用,我很想知道为什么。我的代码有什么问题?是不是可以像这样分配处理程序,或者我的代码中的其他内容可能是错误的?
var liList = document.querySelectorAll("li");
for (var i = 0; i < liList.length; ++i){
liList[i].onItemClick = function() {
liList[i].classList.toggle("done");
}
}
<ul>
<li>Notebook</li>
<li>Jello</li>
<li>Spinach</li>
<li>Rice</li>
<li>Birthday Cake</li>
<li>Candles</li>
</ul>
试试 liList[i].onclick = function(e) {console.log(e.currentTaget)}
e 将是您当前点击的项目。
使用'onClick'代替'onItemClick'
window.addEventListener('load', function() {
document.querySelectorAll("li").forEach(function(v){
v.addEventListener("click", function(e){
e.target.classList.toggle("done");
})
})
})
li.done {
color: green
}
<ul>
<li>Notebook</li>
<li>Jello</li>
<li>Spinach</li>
<li>Rice</li>
<li>Birthday Cake</li>
<li>Candles</li>
</ul>
var liList = document.querySelectorAll("li");
for (var i = 0; i < liList.length; ++i){
liList[i].addEventListener("click", function() {
this.classList.toggle("done");
});
}
**This may be helpful for you**
<script type="text/javascript">
var liList = document.getElementsByTagName("li");
for(var i=0; i<liList.length; i++){
liList[i].addEventliListener("click", liClick);
}
function liClick(){
this.classliList.toggle("done");
}
</script>
我在本练习中的任务是在有人单击列表中的 li 项时切换它们的 "done" 属性。我找到了其他方法,但这个方法对我不起作用,我很想知道为什么。我的代码有什么问题?是不是可以像这样分配处理程序,或者我的代码中的其他内容可能是错误的?
var liList = document.querySelectorAll("li");
for (var i = 0; i < liList.length; ++i){
liList[i].onItemClick = function() {
liList[i].classList.toggle("done");
}
}
<ul>
<li>Notebook</li>
<li>Jello</li>
<li>Spinach</li>
<li>Rice</li>
<li>Birthday Cake</li>
<li>Candles</li>
</ul>
试试 liList[i].onclick = function(e) {console.log(e.currentTaget)}
e 将是您当前点击的项目。
使用'onClick'代替'onItemClick'
window.addEventListener('load', function() {
document.querySelectorAll("li").forEach(function(v){
v.addEventListener("click", function(e){
e.target.classList.toggle("done");
})
})
})
li.done {
color: green
}
<ul>
<li>Notebook</li>
<li>Jello</li>
<li>Spinach</li>
<li>Rice</li>
<li>Birthday Cake</li>
<li>Candles</li>
</ul>
var liList = document.querySelectorAll("li");
for (var i = 0; i < liList.length; ++i){
liList[i].addEventListener("click", function() {
this.classList.toggle("done");
});
}
**This may be helpful for you**
<script type="text/javascript">
var liList = document.getElementsByTagName("li");
for(var i=0; i<liList.length; i++){
liList[i].addEventliListener("click", liClick);
}
function liClick(){
this.classliList.toggle("done");
}
</script>