如何在javascript中查找第n个位置标记名
找出第n个位置标记名,不要使用id和类名。是否可能获取第n个标记名值如何在javascript中查找第n个位置标记名,javascript,Javascript,找出第n个位置标记名,不要使用id和类名。是否可能获取第n个标记名值 <!DOCTYPE html> <html> <body> <div style="position:relative;border:1px solid;width:40px;height:40px;"></div> <div style="position:relative;border:1px solid;width:40px;height:40px;"&
<!DOCTYPE html>
<html>
<body>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<div style="position:relative;border:1px solid;width:40px;height:40px;"></div>
<script>
document.onclick = runfun;
function runfun(e)
{
alert(e.target.tagName[]); // find out nth position tagName
}
</script>
</body>
</html>
document.onclick=runfun;
函数runfun(e)
{
警报(e.target.tagName[]);//查找第n个位置标记名
}
我认为应该这样做:
function runfun(e) {
var allDivs = document.getElementsByTagName('div');
for (i = 0; i < allDivs.length; i++) {
if (e.target == allDivs[i]) {
alert(i);
break;
}
}
}
函数runfun(e){
var allDivs=document.getElementsByTagName('div');
对于(i=0;i
代码中的事件处理程序有一个特定的事件目标,即单击的元素。它是一个单独的DOM对象,您可以获取它的标记名。如果要在第n次迭代中循环遍历主体的所有子元素,则将获得第n个元素,您可以访问其标记名。迭代所有标记并查找匹配项:
function check(e) {
var tagName = e.target.tagName.toLowerCase(),
allTags = document.getElementsByTagName(tagName);
([].slice.call(allTags)).forEach(function(el, i) {
if (el === e.target) {
alert(i);
}
});
}
document.addEventListener('click', check);
JSFIDLE演示:
我不明白你的问题,我想他想知道他点击的那个div在div列表中的位置。我明白了,更有意义的是div编号列表。如果你已经在将节点列表转换为数组,我认为使用
.indexOf
是一个更优雅的解决方案。