HTML和JavaScript“;这";
我这里有这个HTML代码HTML和JavaScript“;这";,javascript,html,Javascript,Html,我这里有这个HTML代码 <ul> <li><a href="#" id="0">Services</a></li> <li><a href="#" id="1">Portfolio</a></li> <li><a href="#" id="2">Contact</a></li> </ul> 问题:是否可
<ul>
<li><a href="#" id="0">Services</a></li>
<li><a href="#" id="1">Portfolio</a></li>
<li><a href="#" id="2">Contact</a></li>
</ul>
问题:是否可以确定单击了哪个“A”标记,而不为链接设置额外的“id”属性?使用JavaScript时,情况如下所示:
document.getElementsByTagName("a")[number];
我需要这个号码
我希望你明白我的意思。对不起,我的英语不好。当然可以:
var index = this.parentNode.parentNode.childNodes.indexOf(this.parentNode);
NodeList.prototype.indexOf = function(obj) {
for (var i = 0; i < this.length; i++) {
if (this[i] == obj) return i;
}
return undefined;
}
var index=this.parentNode.parentNode.childNodes.indexOf(this.parentNode);
NodeList.prototype.indexOf=函数(obj){
for(var i=0;i
或:
这里的解决方案不那么优雅,但很实用:
window.onload = function() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
links[i].onclick = function() {
var index = FindIndex(this);
alert("index: " + index);
return false;
};
}
};
function FindIndex(oLink) {
var listItem = oLink.parentNode;
var oList = listItem.parentNode;
var allItems = oList.getElementsByTagName("li");
for (var i = 0; i < allItems.length; i++) {
if (allItems[i] === listItem)
return i;
}
return -1;
}
window.onload=function(){
var links=document.getElementsByTagName(“a”);
对于(变量i=0;i
.您是否尝试过target或currentTarget?(参考):必须以字母开头
([a-Za-z])
()currentTarget抛出未定义的错误。HTML5中不再支持@Yoshi:的可能重复项。注意:IE中不支持indexOf。web上有JS函数模拟IE,并尽可能使用本机实现。下面是此类函数的一个示例,这里有一个很好的修复方法:childNodes
是节点列表,而不是数组,因此它没有indexOf
方法。这将包括文本节点,包括空白,这可能不是您想要的。编辑:并且此
始终是链接,它始终是父元素中的第一个元素,因此它始终是0
。出于某种原因,它抛出错误:this.parentNode.childNodes.indexOf(this)不是function@nuclear这是因为除了列表项之外,文本节点也是列表的一部分。请看我的答案和测试案例。Tim van Elsloo解决方案是我正在寻找的。
<a href="#" onclick='doSomething(this)'>
<a href='?clicked=1'>Click Me</a>
window.onload = function() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
links[i].onclick = function() {
var index = FindIndex(this);
alert("index: " + index);
return false;
};
}
};
function FindIndex(oLink) {
var listItem = oLink.parentNode;
var oList = listItem.parentNode;
var allItems = oList.getElementsByTagName("li");
for (var i = 0; i < allItems.length; i++) {
if (allItems[i] === listItem)
return i;
}
return -1;
}