Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [JS, Jquery] манипуляция элементами в таблице 
V
    Опции темы
gcc
Дата 8.4.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



я хотел бы изменить и построить массив с несколькими элементами в таблице, с начала таблицы и с конца таблицы... 

но в данном примере почему-то вся таблица начинает изменятся...
весь класс blog с td  изменяется на ''1"

хотя должно же только 5?


 
Код
  <tr> 
    <td>
    <table id="t_blog" border="1">
  <tr ><td>TD #0</td><td>TD #1</td><td class="blog">TD #2</td></tr>
  <tr ><td>TD #3</td><td>TD #4</td><td class="blog">TD #5</td></tr>
  <tr ><td>TD #6</td><td>TD #7</td><td class="blog">TD #8</td></tr>
  <tr ><td>TD #0</td><td>TD #1</td><td class="blog">TD #2</td></tr>
  <tr ><td>TD #3</td><td>TD #4</td><td class="blog">TD #5</td></tr>
  <tr ><td>TD #6</td><td>TD #7</td><td class="blog">TD #8</td></tr>
    <tr ><td>TD #0</td><td>TD #1</td><td class="blog">TD #2</td></tr>
  <tr ><td>TD #3</td><td>TD #4</td><td class="blog">TD #5</td></tr>
  <tr ><td>TD #6</td><td>TD #7</td><td class="blog">TD #8</td></tr>
    <tr ><td>TD #0</td><td>TD #1</td><td class="blog">TD #2</td></tr>
  <tr ><td>TD #3</td><td>TD #4</td><td class="blog">TD #5</td></tr>
  <tr ><td>TD #6</td><td>TD #7</td><td class="blog">TD #8</td></tr>
  
</table>
<script>

 var array = [];
 var tr = document.getElementById('t_blog').getElementsByTagName('tr');
  for (var i = 0; i < 5; i++) {
     
    // if ($(".blog:eq([i])").html()) {
    $(".blog:eq([i])").html( '1') ;
    
//    }
    array[i] = $(".blog:eq([i])").html();
    
  }
</script>

    </td>
    </tr>

    

если написать просто $(".blog:eq(5)").html( '1') ;  то 5(4) элемент по счету изменятеся и все работает...

но почему не хотят в цикле именно некоторые (первые 5 или последние 5) элементы изменятся?

как изменить 5 элементов (в классе class="blog") с конца или с начала таблицы?

Добавлено через 11 минут и 39 секунд
Код
 for (var i = 0; i < 5; i++) {

    $(".blog:eq("+i+")").html( '1') ;

    array[i] = $(".blog:eq("+i+")").html();
    
  }


зафтыкал, скобки лишниые и вот так вот надо было сделать "+i+"...
PM WWW ICQ Skype GTalk Jabber   Вверх
ksnk
Дата 8.4.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



а если еще немного поковырять документацию jQuery, можно было бы написать что-то такое
Код

   $(".blog").each(function(index){
       array[i] = $(this).html();
       if (index>5) return false;
  })


Это сообщение отредактировал(а) ksnk - 8.4.2010, 11:39


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
gcc
Дата 8.4.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ksnk, но я это не понял...

а на что вы намекаете?

т.е. мне нужно взять посдлений td в каждом tr в таблице, как мне его взять? т.е. я назвал ему класс..
... в зависимости что в нем - построить массив и в зависимости что в конкретном td поменять ему значения


Это сообщение отредактировал(а) gcc - 8.4.2010, 11:57
PM WWW ICQ Skype GTalk Jabber   Вверх
ksnk
Дата 8.4.2010, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



gcc, Просто строковые селекторы - не самый быстрый способ работы с деревом в DOM'е. Особенно если они в цикле и конструируются на лету.

Хотя обычными методами добраться до 5 последних элементов не так просто как до 5-и первых...

Можно так: в принципе, $(".blog") - это уже массив, с которым можно работать почти как с настоящим массивом
юдутпер выдает его длинну, .eq(X) выдает DOM элемент с индексом X...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.