Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выводит потомков через один
 
 автор: btr   (03.02.2013 в 18:14)   письмо автору
 
 

Здравствуйте.

состав узла
<div id="a4572" class="a_node" onclick="a_onClick(this.id)" "id_s"="1">
<img class="a_img" src="4572_1.jpg">
<p class="a_zena">11</p>
<p class="a_name">оче4572</p>
<p class="a_spitch">sss</p>
<table id="t4572" class="disp_none"><tbody>
  <tr>  <td>р-р</td>  <td>длина</td>  <td>ширина</td> <td>высота</td> <td></td> </tr>
  <tr> <td>42</td> <td>28</td> <td>11</td> <td>14</td> <td>в корзину</td> </tr>
  <tr> <td>43</td> <td>29</td> <td>11</td> <td>14</td> <td>в корзину</td> </tr>
  <tr> <td>44</td> <td>29</td> <td>11</td> <td>15</td> <td>в корзину</td> </tr>
  <tr> <td>45</td> <td>30</td> <td>11</td> <td>15</td> <td>в корзину</td> </tr>
</tbody></table>
</div>


по клику на нем:

function a_node_all(a_id) 
{
// выбор целевого элемента
  var e = document.getElementById(a_id).cloneNode(true);
  //alert(e.id);
  //alert('id_s='+e.getAttribute('id_s'));
  e_ch = e.children;
// выбор принимающего элемента
  var e_t = document.getElementById('a_all');
  e_t.innerHTML = '';
  alert(e_ch.length); // выводит 5
  // перебираем и меняем классы у потомков; вставляем потомков в принимающий элемент 
  for (var i = 0; i < e_ch.length; i++) 
  {
    e_ch[i].className += '_all';
    alert('i='+i); // выводит 0,1,2
    alert(e_ch[i].tagName); // выводит IMG,P,TABLE
    e_t.appendChild(e_ch[i]);
  }
  
}

почему чертвозьми?? :(

  Ответить  
 
 автор: btr   (03.02.2013 в 18:44)   письмо автору
 
   для: btr   (03.02.2013 в 18:14)
 

вопрос снят.

оказывается,
 e_t.appendChild(e_ch[i]) 
не только вставляет узел в e_t, но и удаляет e_ch[i] из e_ch, поэтому длина e_ch сокращается в процессе работы цикла.

решил так:
 e_t.appendChild(e_ch[i].cloneNode(true));

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования