获取div中元素的索引/位置 - 纯javascript

时间:2011-12-30 19:37:27

标签: javascript indexing position

如何获取元素中最后一个子元素的位置,我的意思是数字(索引)?

我希望下面的代码提醒“4”,因为有四个元素。

<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<div id="container">
    <div id="div1">div1</div>
    <div id="div2">div2
        <div id="child_div1">div2</div>
        <div id="child_div2">div2</div>
    </div>
    <div id="div3">div3</div>
    <div id="div4">div4</div>
</div>
<script>

var container = document.getElementById('container'),
last_child_of_container = container.childNodes.length;

alert('position of last div is'+ last_child_of_container);

</script>
</body>
</html>

8 个答案:

答案 0 :(得分:4)

document.getElementById('container').children.length

http://jsfiddle.net/pxfunc/MGnCG/

答案 1 :(得分:2)

这适用: - )

var container = document.getElementById('container');

var count = 0;
var length = container.childNodes.length;

for (var i = 0; i < length; i++) {
    if (container.childNodes[i].tagName && 
        container.childNodes[i].tagName == 'DIV') {
        count += 1;
    }
}

alert(count);

答案 2 :(得分:1)

document.getElementById('container').childElementCount一个

答案 3 :(得分:0)

container.childNodes.lengt

的末尾添加h
    container.childNodes.length;

See jsFiddle

立即使用儿童childElementCount

   container.childElementCount;

答案 4 :(得分:0)

在这里:http://jsfiddle.net/2t3VJ/

var container = document.getElementById('container'), children = 0;
for( var i=0, c = container.childNodes, l = c.length ; i < l; i++ ) {

   if( c[i].nodeType == 1 ) { // if this is a HTMLSomeELement :)
       children++;
   }
}

alert( children );

答案 5 :(得分:0)

var container = window.document.getElementById("container");
var child_nodes = container.childNodes;
var child_nodes_length = child_nodes.length;
var count = 0;
var node;
var i;
for (i = 0; i < child_nodes_length; i++) {
    node = child_nodes.item(i);
    if (node.nodeType === 1) {
        ++count;
    }
}

window.alert(count);

答案 6 :(得分:0)

对于想要任何元素的人(例如,不一定是最后一个元素)

var wanted = document.getElementById('wanted');
var index = [].indexOf.call(wanted.parentElement.children, wanted);

答案 7 :(得分:0)

很容易得到最后一个元素的位置......人们正在变得如此复杂......试试我的代码

function getLastElPos(container) {
   return container.childNodes.length;
}

它返回容器元素中子节点的长度,长度表示最后一个元素(lol)。

你可以像这样使用它:

var container = document.getElementById('container');
var lastElement = getLastElPos( container );

alert( lastElement );

它适用于所有浏览器:)