Доступ к дочернему классу из родительского класса javascript

<td <td class="upgrade_building b_wall">
    <a href="#" class="building_tooltip d_0" tooltip="<span class='icon header wood'></span> 801 <span class='icon header stone'></span> 1846 <span class='icon header iron'></span> 320<br />Población: 5<br />Tiempo de construcción: 3:12:01">10
    </a>
</td>

Я делаю скрипт для автоматического щелчка по элементу «building_tooltip d_0», содержащемуся в «upgrade_building b_wall». Я попробовал этот код:

javascript:var list = document.getElementsByClassName("building_tooltip d_0");
for (var i=0; i<list.length; i++) list[i].click();

Но в DOM страницы есть другие элементы с "building_tooltip d_0" я не хочу запускать, я просто хочу запустить "upgrade_building b_wall".

Кто-нибудь может мне помочь?


person Manuel Ramos    schedule 16.08.2015    source источник


Ответы (1)


Вы можете использовать document.querySelectorAll, который поддерживается современными браузерами:

var list = document.querySelectorAll(".upgrade_building.b_wall > .building_tooltip.d_0");
for (var i=0; i<list.length; i++) {
    list[i].click();
}

В качестве альтернативы вы можете использовать оператор if, чтобы проверить, что у узла есть правильный родитель, прежде чем выполнить щелчок по нему:

var list = document.getElementsByClassName("building_tooltip d_0");
for (var i=0; i<list.length; i++) {
    if (list[i].parentNode.className === "upgrade_building b_wall") list[i].click();
}
person Maximillian Laumeister    schedule 16.08.2015
comment
@ManuelRamos Рад, что смог помочь! Пожалуйста, не забудьте отметить этот ответ как принятый с помощью серой галочки. Спасибо! - person Maximillian Laumeister; 16.08.2015