getElementById() zástupný znak

Mám div a tam mám nějaké dětské uzly v nedefinovaných úrovních.

Nyní musím změnit ID každého prvku na jeden div. Jak si uvědomit?

Myslel jsem si, že mají odchozí ID, takže pokud je rodič id=’path_test_maindiv’, další downer by byl ‘path_test_maindiv_child’, a proto jsem si řekl, že bych to vyřešil pomocí zástupných znaků, například:

document.getElementById('path_test_*')

Je to možné? Nebo existují nějaké jiné způsoby?

Odpověď

Ne v nativním JavaScriptu. Máte různé možnosti:

1) Vložte třídu a použijte getElementsByClassName, ale nefunguje to v každém prohlížeči.

2) Vytvořte si vlastní funkci. Něco jako:

function getElementsStartsWithId( id ) {
  var children = document.body.getElementsByTagName('*');
  var elements = [], child;
  for (var i = 0, length = children.length; i < length; i++) {
    child = children[i];
    if (child.id.substr(0, id.length) == id)
      elements.push(child);
  }
  return elements;
}

3) Použijte knihovnu nebo selektor CSS. Jako jQuery 😉