0

Я пытался найти решение своей проблемы в течение нескольких дней без везения, я нашел это: getElementsByClassName doesn't work, но это не решение моей проблемы, так как я хочу получить доступ ко всем тегам и измените их, так что здесь мы идем:Выберите все теги в divs с определенным классом

Я хочу, чтобы изменить стиль тегов, которые находятся в пределах div с определенным классом. Я начал с этого с идентификатором в div, и это работает точно так, как я его хочу, но поскольку страница, где я буду использовать это, будет иметь один и тот же div, который появляется несколько раз, я должен использовать класс, а я не могу заставить его работать. Я должен использовать javascript, а не jQuery.

Пример того, как он работал с ID:

var images = document.getElementById("test").getElementsByTagName("img"); 
 
for (var i = 0; i < images.length; i++) { 
 
    images[i].align = "right"; 
 
}
<div id="test"> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. Vivamus convallis, dolor a euismod scelerisque, nisi lorem placerat nisi, sed euismod ligula eros in lorem. Pellentesque vel ante semper, 
 
    convallis ante in, mollis odio. 
 
    </p> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. Vivamus convallis, dolor a euismod scelerisque, nisi lorem placerat nisi, sed euismod ligula eros in lorem. Pellentesque vel ante semper, 
 
    convallis ante in, mollis odio. 
 
    </p> 
 
</div>

Пример того, как я хочу работать:

var images = document.getElementsByClassName("test").getElementsByTagName("img"); 
 
for (var i = 0; i < images.length; i++) { 
 
    images[i].align = "right"; 
 
}
<div class="test"> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. 
 
    </p> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. 
 
    </p> 
 
</div> 
 

 
<div class="test"> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. 
 
    </p> 
 
    <img src="http://galerie32.de/images-designer/thumbs/dummy-user.jpg" width="100"> 
 
    <p> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis turpis justo, eu egestas elit aliquet sit amet. 
 
    </p> 
 
</div>

Я понимаю что должен быть совершенно другой способ записи заявления, когда я хочу получить доступ к классам, но я не могу понять, как это сделать.

Любой, кто знает и может дать мне несколько указателей?

+1

http://jsfiddle.net/ge1Lmanv/ Вам нужны две петли, чтобы получить все элементы .... getElementsByClassName возвращает коллекцию HTML, и вы тоже можете ее перебирать ... – sinisake

+0

Что вы получаете, когда пытаетесь этот JavaScript? Ошибка? –

+0

Это было бы проще, если бы вы правильно использовали возможности селекторов CSS ... например, изменить имя класса общего элемента предка. и есть правило в вашей таблице стилей, которое форматирует элементы-потомки по-разному на основе этого. – CBroe

ответ

0

Код document.getElementsByClassName("test") дает список элементов, а не один элемент. Сделайте петлю (for) на этих элементах. В этом цикле позвоните getElementsByTagName("img").

+1

Спасибо! Это то, что решит мою проблему, получило пример выше, из того, что я могу использовать. – Emma