Diskuze: poradie child elementu
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Použij index() od JQuery...
http://api.jquery.com/index/
Jde to, ale je to o něco složitější Odkážu tě na stackoverflow...
http://stackoverflow.com/…n-javascript
EDIT: nebo zde máš přímo hotovou funkci, která by měla fungovat... Je od dystroy.
function indexInParent(node) {
var children = node.parentNode.childNodes;
var num = 0;
for (var i=0; i<children.length; i++) {
if (children[i]==node) return num;
if (children[i].nodeType==1) num++;
}
return -1;
}
jde to velmi jednoduše (v čistém JS).
var nejakyDiv = ...
var jehoIndex = Array.prototype.indexOf.call(nejakyDiv.parentElement.children, nejakyDiv);
btw. je to v místním (novém) tutoriálu http://www.itnetwork.cz/…ek-dokonceni
call volám na fonkci aby se změnil její kontext. Samotné nejakyDiv.parentElement.children není pole a nemá metodu indexOf, ale má to stejné vlastnosti jako pole (indexované prvky a vlastnost length) tak vlastně to té metodě podstrčím. Je to popsané v tom tutoriálu.
function indexInParent(el){
var index = -1;
while(el){
if(el.nodeType !== 3){ index++; }
el = el.previousSibling;
}
return index;
};
Funguje ve všem.
'Array.prototype.indexOf' má hodnotu null nebo není objekt.
Zobrazeno 8 zpráv z 8.