Witam,
czy da sie zrobić by metoda getElementById działała od każdego węzła?
albo czy jest chociaż jakaś metoda już zaimplementowana typu getElementBiId('id',wezel_poczatkowy)
Witam,
czy da sie zrobić by metoda getElementById działała od każdego węzła?
albo czy jest chociaż jakaś metoda już zaimplementowana typu getElementBiId('id',wezel_poczatkowy)
nie no tylko nazwaKontenera.getElementById, wszystkie inne kombinacje musisz raczej robić bawiąc się pętlami i warunkami
a jest już jakiś gotowiec? szkoda drugi raz ameryke odkrywać :-)
chyba trzeba ;-P
function getElementById(id,rootElem){
var els = document.getElementsByTagName(rootElem.tagName);
for(var i=0; i<els.length; i++)
if(els[i]==rootElem){
els=rootElem;
break;
}
var red=traverseDomTree_recurse(els,0,id);
alert(red.innerHTML);
}
function traverseDomTree_recurse(curr_element, level,id) {
var i;
var ret;
if(curr_element.childNodes.length > 0) {
for(i=0; curr_element.childNodes.item(i); i++) {
if(curr_element.childNodes.item(i).id==id){
return curr_element.childNodes.item(i);
break;
}else{
var r=traverseDomTree_recurse(curr_element.childNodes.item(i), level+1,id);
if(r!=null)
ret=r;
}
}
return ret;
}else{ return null;}
}
przy założeniu że występuje jedno id na cały węzeł, inaczej zwróci pierwszy jaki znajdzie.
ale standard określa jedno ID na całą stronę więc nie za bardzo rozumiem jakie zastosowanie ma twój kod ?