Как получить все элементы определенного тега HTML в JavaScript?
Мне нужно скрыть все элементы типа "раздел" в моем документе, кроме одного с определенным идентификатором.
В jquery это было бы легко
$("section").hide();
$("section#myId").show();
Как бы я сделать это без JQuery?
(Мне нужно, чтобы это произошло, как только страница загрузится и не будет заметным). Мне также это нужно для работы кросс-браузер.
Благодарю.
2 ответа
Решение
Поместите следующее непосредственно перед body> в вашем HTML
<script>
(function () {
for(var els = document.getElementsByTagName ('section'), i = els.length; i--;)
els[i].id !== "myId" && (els[i].style.display = "none");
}) ();
</script>
или в "современных" (HTML5) браузерах:
<script>
[].forEach.call (document.querySelectorAll ('section'),
function (el) { el.id !== "myId" && (el.style.display = "none"); })
</script>
DOMElement.getElementsByTagName
твой друг:
var sections = document.getElementsByTagName('section');
var mySection = null;
for(var i = 0; i < sections.length; ++i) {
if(sections[i].id === "myId") {
mySection = sections[i];
mySection.style.display = "block";
break;
}
sections[i].style.display = "none";
}