我有以下HTML页面:
<html>
<head>
<script type="text/javascript" src="JavaScript/Menu.js"></script>
</head>
<body>
<ul>
<li><a onclick="GetIndex(this)">One</a></li>
<li><a onclick="GetIndex(this)">Two</a></li>
<li><a onclick="GetIndex(this)">Three</a></li>
<li><a onclick="GetIndex(this)">Four</a></li>
</ul>
</body>
</html>
和Menu.js javascript:
function GetIndex(sender)
{
var aElements = sender.parentNode.parentNode.getElementsByTagName("a");
var aElementsLength = aElements.length;
var index;
for (var i = 0; i < aElementsLength; i++)
{
if (aElements[i] == sender) //this condition is never true
{
index = i;
return index;
}
}
}
为什么注释条件从未满足?如果这两个HTML元素在Javascript中相等,我该如何比较?谢谢你的帮助。
发布于 2016-06-25 05:07:10
旧帖子,但这里有一个快速函数来完成此操作:
function nodeIndex(el) {
var i=0;
while(el.previousElementSibling ) {
el=el.previousElementSibling;
i++;
}
return i;
}
这应该使用element引用作为参数。它基本上只是返回以前的兄弟姐妹的数量。
发布于 2012-04-16 12:17:17
尝试使用:
if (aElementsi ===发送方)
而不是
if (aElements[i] == sender)
发布于 2010-10-27 19:27:52
您确定在锚点标记上的单击事件上执行GetIndex函数吗?
尝试将href属性赋予锚定标记。您可以编写以下代码
<a href="#" onclick="GetIndex(this)">One</a>
或
<a href="javascript:void(0)" onclick="GetIndex(this)">One</a>
以下是http://jsfiddle.net/QfRSb/的工作示例
https://stackoverflow.com/questions/4032654
复制相似问题