Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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中查找第n个位置标记名_Javascript - Fatal编程技术网

如何在javascript中查找第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;"&

找出第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;"></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
是一个更优雅的解决方案。