JavaScript获取正确的从零开始的点击链接索引
警报应在文档中显示锚的零基索引,而不是跟随链接。 HTML: 我尝试使用jQuery: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参数使用闭包) 取决于您试图为该元素
$('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;
}
}
}