IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
saeQ
Člen
Avatar
saeQ:29.10.2014 12:23
<div id='container'>
    <div id='one'>some</div>
    <div id='two'>random</div>
    <div id='three'>text</div>
</div>

Ahoj, da sa nejako zistit kolkaty child element je jednotlivy div?(napr. div one = children[0]

 
Odpovědět
29.10.2014 12:23
Avatar
Odpovídá na saeQ
Neaktivní uživatel:29.10.2014 12:36

Použij index() od JQuery...
http://api.jquery.com/index/

Nahoru Odpovědět
29.10.2014 12:36
Neaktivní uživatelský účet
Avatar
saeQ
Člen
Avatar
saeQ:29.10.2014 12:43

V cistom js to nejde?

 
Nahoru Odpovědět
29.10.2014 12:43
Avatar
Odpovídá na saeQ
Neaktivní uživatel:29.10.2014 12:45

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;
}
Editováno 29.10.2014 12:46
Nahoru Odpovědět
29.10.2014 12:45
Neaktivní uživatelský účet
Avatar
Michal Žůrek - misaz:29.10.2014 12:54

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

Editováno 29.10.2014 12:55
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
29.10.2014 12:54
Avatar
saeQ
Člen
Avatar
saeQ:29.10.2014 13:18

Dik :) , btw

Array.prototype.indexOf.call(nejakyDiv.parentElement.children, nejakyDiv);

preco sa tu vola call()? nepouziva sa call/apply na volanie argumentov funkcie do urciteho scope?

Editováno 29.10.2014 13:19
 
Nahoru Odpovědět
29.10.2014 13:18
Avatar
Odpovídá na saeQ
Michal Žůrek - misaz:29.10.2014 13:27

call volám na fonkci aby se změnil její kontext. Samotné nejakyDiv.paren­tElement.chil­dren 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.

 
Nahoru Odpovědět
29.10.2014 13:27
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:29.10.2014 14:38
function indexInParent(el){
  var index = -1;
  while(el){
    if(el.nodeType !== 3){ index++; }
    el = el.previousSibling;
  }

  return index;
};

Funguje ve všem.

'Array.prototy­pe.indexOf' má hodnotu null nebo není objekt.

Editováno 29.10.2014 14:40
 
Nahoru Odpovědět
29.10.2014 14:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.