Javascript 如何获取单击元素的索引号?

Javascript 如何获取单击元素的索引号?,javascript,Javascript,我的UL有5个Li,在Li中有a href,当我点击a时,它必须显示UL的索引号。例如,如果我单击3rd li,那么它应该是alet 3。为此,我使用此函数: var titles = document.getElementById('bigscreen-titles'); if(titles){ var links = titles.getElementsByTagName('a'); for(i=0;i<links.length;i++){ link

我的UL有5个Li,在Li中有a href,当我点击a时,它必须显示UL的索引号。例如,如果我单击3rd li,那么它应该是alet 3。为此,我使用此函数:

var titles = document.getElementById('bigscreen-titles');  if(titles){
    var links = titles.getElementsByTagName('a');

    for(i=0;i<links.length;i++){
        links[i].onclick = function(){
            alert(i);
        }
    }
}
var titles=document.getElementById('bigscreen-titles');如果(标题){
var links=titles.getElementsByTagName('a');

对于(i=0;i而言,解决方案如下:

if(titles){
    var links = titles.getElementsByTagName('a');

    for(i=0;i<links.length;i++){
        links[i].onclick = function(currentIndex){
            return function () {
                alert(currentIndex);
            }
        }(i)
    }
}
if(标题){
var links=titles.getElementsByTagName('a');

对于(i=0;i而言,这种行为是由所谓的“闭包”引起的,基本上是因为警报函数在循环完成后的某个点运行,此时“i”为5

你应该能够通过一个简单的改变来解决这个问题

if(titles){
    var links = titles.getElementsByTagName('a');

    for(i=0;i<links.length;i++){
        links[i].onclick = function(index){
           return function() {
               alert(index);
           }
        }(i)
    }
}
if(标题){
var links=titles.getElementsByTagName('a');

对于(i=0;iIs),除了给出的一个答案之外,您是否有可能?