Javascript 如何获取单击元素的索引号?
我的UL有5个Li,在Li中有a href,当我点击a时,它必须显示UL的索引号。例如,如果我单击3rd li,那么它应该是alet 3。为此,我使用此函数: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
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),除了给出的一个答案之外,您是否有可能?