Получить индекс / положение элемента в div - чистый JavaScript - PullRequest
2 голосов
/ 30 декабря 2011

Как получить позицию последнего потомка в элементе, я имею в виду число (индекс)?

Я хочу, чтобы приведенный ниже код предупреждал «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 ]

4 голосов
/ 30 декабря 2011

попробуй

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

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

2 голосов
/ 30 декабря 2011

Это работает: -)

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);
1 голос
/ 30 декабря 2011

Дай document.getElementById('container').childElementCount за

0 голосов
/ 21 ноября 2016

Очень легко найти позицию последнего элемента ... люди делают это так сложно ... попробуйте мой код

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

возвращает длину дочерних узлов в элементе контейнера, а длина означает последний элемент (lol).

вы можете использовать его так:

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

alert( lastElement );

отлично работает во всех браузерах:)

0 голосов
/ 15 июля 2015

Для людей, которые хотят любой элемент (например, не обязательно последний)

var wanted = document.getElementById('wanted');
var index = [].indexOf.call(wanted.parentElement.children, wanted);
0 голосов
/ 30 декабря 2011
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);
0 голосов
/ 30 декабря 2011

Вот, пожалуйста, 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 );
0 голосов
/ 30 декабря 2011

Добавьте h в конце container.childNodes.lengt

    container.childNodes.length;

См. JsFiddle

Для непосредственного использования ребенком childElementCount

   container.childElementCount;
...