Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript获取正确的从零开始的点击链接索引_Javascript_Jquery_Html - Fatal编程技术网

JavaScript获取正确的从零开始的点击链接索引

JavaScript获取正确的从零开始的点击链接索引,javascript,jquery,html,Javascript,Jquery,Html,警报应在文档中显示锚的零基索引,而不是跟随链接。 HTML: 我尝试使用jQuery: $('a').click(function(event) { var as = document.getElementsByTagName('a'); alert($(this).index()); }); 但是我得到的索引是1,3,5,而不是0,1,2 alert($('a').index(this)) 附言 更新:没有jquery时相同(需要对pass参数使用闭包) 取决于您试图为该元素

警报应在文档中显示锚的零基索引,而不是跟随链接。 HTML:

我尝试使用jQuery:

$('a').click(function(event) {
    var as = document.getElementsByTagName('a');
    alert($(this).index());
});
但是我得到的索引是1,3,5,而不是0,1,2

alert($('a').index(this))

附言

更新:没有jquery时相同(需要对pass参数使用闭包)


取决于您试图为该元素查找索引的集合

使用jQuery

第页中所有
实例的索引:

var $links = $('a').click(function(event) {    
    alert($links.index(this));
});
兄弟组内的索引

<div id="div">
    <a/> 
    <a/>
    <a/>
</div>


$('#div a').click(function(event) {    
        alert($(this)index());
});

我的解决方案是在
中添加
数据索引
属性

函数寄存器句柄(){
var as=document.getElementsByTagName('a');
对于(变量i=0;i

测试页
在我的生活中,我使用了以下网络搜索引擎:



函数寄存器句柄(){ var as=document.getElementsByTagName(“a”); 对于(变量i=0;i
函数寄存器句柄(){
var as=document.getElementsByTagName('a');
对于(变量i=0;i
jQuery或类似于
setAttribute
的外来属性是不必要的。这个问题是关于闭包的。另外,不要忘记防止默认行为,这是目前实践问题的一部分

function registerHandlers() {
  var as = document.getElementsByTagName('a');
  for (var i = 0; i < as.length; i++) {
    const index = i;  // the following anon function closes over this variable
    as[i].onclick = function(event) {
      event.preventDefault();   // prevent default behaviour
      alert(index);
      return false;
    }
  }
}
函数寄存器句柄(){
var as=document.getElementsByTagName('a');
对于(变量i=0;i
我喜欢Bing甚至不是一个可能的选择!这是一个招聘考试的问题。谢谢。这是可行的,但是你知道我如何只使用JavaScript而不是jQuery来获得相同的结果吗?这段代码抛出一个TypeError异常,表示[I]未定义。这怎么解决?谢谢你的帮助。这是可行的,但是你知道我如何只使用JavaScript而不是jQuery来获得相同的结果吗?对于哪个选项?还是不清楚你在找什么汉克斯很多。第一个。它工作得很好。我只是在想,如果不使用jQuery,ir可以得到同样的结果吗?类似于
var nodeList=Array.prototype.slice.call(document.getElementsByTagName('a'))的东西;var test=document.getElementById('test');var index=nodeList.indexOf(测试)
。为
工作首先,欢迎来到StackOverflow。请按照文档中的说明,为您的回复提供一些上下文
var $links = $('a').click(function(event) {    
    alert($links.index(this));
});
<div id="div">
    <a/> 
    <a/>
    <a/>
</div>


$('#div a').click(function(event) {    
        alert($(this)index());
});
$('a').click(function(event) {    
     alert($('*')index(this));
});
function registerHandlers() {
  var as = document.getElementsByTagName('a');

  for (var i = 0; i < as.length; i++) {
    as[i].setAttribute('data-index', i);
    as[i].onclick = function () {
      alert(this.getAttribute('data-index'));
    }
  }
}
function registerHandlers() {
            var as = document.getElementsByTagName('a');
            for (var i = 0; i < as.length; i++) {
                as[i].addEventListener('click', (function(i) {
                    return function(e) {
                        e.preventDefault();
                        alert(i);
                    }
                })(i));
            }
        }

        registerHandlers();
function registerHandlers() {
  var as = document.getElementsByTagName('a');
  for (var i = 0; i < as.length; i++) {
    const index = i;  // the following anon function closes over this variable
    as[i].onclick = function(event) {
      event.preventDefault();   // prevent default behaviour
      alert(index);
      return false;
    }
  }
}