[JS] getElementById od kazdego wezla

0

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)

0

nie no tylko nazwaKontenera.getElementById, wszystkie inne kombinacje musisz raczej robić bawiąc się pętlami i warunkami

0

a jest już jakiś gotowiec? szkoda drugi raz ameryke odkrywać :-)

0

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.

0

ale standard określa jedno ID na całą stronę więc nie za bardzo rozumiem jakie zastosowanie ma twój kod ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1