Javascript 检查已单击的列表元素

Javascript 检查已单击的列表元素,javascript,Javascript,我正在检查无序列表中单击了哪个li。只有第一个li似乎有效,因为它将向0发出警报,但其余li不会发出警报节点列表应包含元素0,1,2。只有原始javascript HTML 问题在于: for (var c = 0; c < childs.length; i++) { for(var c=0;c

我正在检查无序列表中单击了哪个
li
。只有第一个
li
似乎有效,因为它将向0发出警报,但其余
li
不会发出警报<代码>节点列表应包含元素0,1,2。只有原始javascript

HTML

问题在于:

for (var c = 0; c < childs.length; i++) {
for(var c=0;c
您可以使用元素
c
来解析向量,但可以增加
i
。将
c
替换为
i
,或者反过来


还可以在if语句中添加大括号

,因为您使用的是jQuery,所以使用jQuery时100%使用它:) 这将起作用:)

jQuery代码:

$(document).ready(function() {
$(".slideshow-buttons li").live("click", function() {
    alert($(this).index());
});
});

首先用
c++
替换
i++
,然后包括花括号

   for (var c = 0; c < childs.length; *c*++) {
        if (this == childs[c])*{*
            alert (c);
            break;
        *}*
    }
for(var c=0;c
您可以使用闭包

for (var i = 0; i < knappar.length; i++) {
    var knapp = knappar[i];
    knapp.onclick = (function(i){
        return function(){
            console.log(i, this); // this is the li you clicked, and i is the index
        }
    })(i);
}
for(变量i=0;i
Im没有使用Jquery。我制作了一个以美元符号作为标记的选择器。因为您忘记了在
if(this==childs[c])周围用大括号括起来
中断
总是会触发。是的,我注意到了,谢谢,我忘记了brakets。请说明你的代码的作用以及它是如何回答问题的。如果你得到一个代码片段作为答案,你可能不知道该如何处理它。答案应该为OP和未来的访问者提供关于如何调试和修复问题的指导。指出你t、 代码背后的想法对理解问题、应用或修改解决方案有很大帮助。
$(document).ready(function() {
$(".slideshow-buttons li").live("click", function() {
    alert($(this).index());
});
});
   for (var c = 0; c < childs.length; *c*++) {
        if (this == childs[c])*{*
            alert (c);
            break;
        *}*
    }
for (var i = 0; i < knappar.length; i++) {
    var knapp = knappar[i];
    knapp.onclick = (function(i){
        return function(){
            console.log(i, this); // this is the li you clicked, and i is the index
        }
    })(i);
}