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 😉