Поиск элемента по классу
не спешите критиковать, только учусь
есть вот такой HTML c двумя классами class="con" <div class="con">text</div> <div id="tro"> <div class="co"> <div class="con">text1</div> <div class="foo"></div> </div> </div> а нужно второму элементу div с классом class="con" добавит еще один элемент вот пробовал через дочерные элементы var elems = document.getElementById('tro'); var elems_child = elems.childNodes; for (var key in elems_child) { var val = some_array[key]; if(val.className == 'con') { var select = document.createElement('div'); val.appendChild(select); } } но что то не получаеться так, подскажите правильный путь |
Во первых ошибка у тя тут:
var val = some_array[key]; Массив с элементами у тебя же elems_child. Во вторых: var elems_child = elems.childNodes; В твоем случае надо: var elems_child = elems.childNodes[1]; window.onload = function() { var elems = document.getElementById('tro'); var elems_child = elems.childNodes[1]; for (var key in elems_child) { var val = elems_child[key]; if(val.className == 'con') { var select = document.createElement('div'); val.appendChild(select); } } } |
walik, for-in в конкретном случае зло!
|
отладчик пишет ошибку
val is null а как можно проверить нашло ли совпадение if(val.className == 'con') пытался в оператор вставить alert('1'); не чего не получилось не сработало |
<script> window.onload = function() { var elems = document.getElementById('tro'); var elems_child = elems.childNodes[1]; for (var key in elems_child) { var val = elems_child[key]; if(val.className == 'con') { var select = document.createElement('div'); select.innerHTML = 'added div'; val.appendChild(select); } } } </script> <div class="con">text</div> <div id="tro"> <div class="co"> <div class="con">text1</div> <div class="foo"></div> </div> </div> Вот все же работает ? monolithed, А почему зло ? И что следует в данном случае использовать ? |
Цитата:
|
Цитата:
|
Есть код:
document.onclick = function( e ){ class = e.target.className; if(class=="strun")alert("хороший"); } <div class="strun"> мой текст </div Нужно,чтоб скрипт не щупал все подряд,а выдавал сообщение только при клике на элементе с заданным классом.Вот так как у меня не выходит,а как правильно? |
class - это зарезервированное слово, его в качестве переменных нельзя использовать.
<div class="strun">мой текст</div> <div class="strun2">мой текст2</div> <script> document.onclick = function( e ){ if(e.target.className == "strun") alert("хороший"); } </script> Но вообще, правильнее было бы вешать онклики сразу на нужные классы, а не на весь документ. |
Спасибо.Не знал что эту переменную нельзя использовать...
А почему вот так работает: <div class="strun">мой текст</div> А вот так нет? <div class="strun"> <p>1 струна</p> </div> Как правильно? |
Часовой пояс GMT +3, время: 19:38. |