Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2017, 06:43
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Перебор элементов и запись в переменную
Добрый день. Есть фрагмент html:
<tbody>
<tr><td class="data field-name">3</td><td class="data field-meta">33</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">2</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr></tbody>

Как получить текст из td с классом data, и записать в переменную, чтобы значение было вида 3:33,2:22
Количество tr не ограниченно. Спасибо.
Пока набросал такой код:
jQuery('tbody tr').each(function(i,elem) {
	var name_field = jQuery(this).children('td').eq(0).text();
	var meta_field = jQuery(this).children('td').eq(1).text();
	// здесь как-то записать значения в переменную fields
});
alert(fields);
Ответить с цитированием
  #2 (permalink)  
Старый 09.10.2017, 07:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

$(function() {
    var s = $.map($('#tbl tr'), function(e) {
        var o = $(e).children();
        return o.eq(0).text() + ':' + o.eq(1).text()
    }).join(',');
    console.log(s)
});
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2017, 07:42
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Спасибо. А как пропустить td, если в нем есть класс, например active?
Ответить с цитированием
  #4 (permalink)  
Старый 09.10.2017, 08:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Янковиц
А как пропустить td
Что значит пропустить, он что может быть между двумя первыми нужными ячейками?
Ответить с цитированием
  #5 (permalink)  
Старый 09.10.2017, 08:09
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Да, td с классом activ в самом начале.
Ответить с цитированием
  #6 (permalink)  
Старый 09.10.2017, 08:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну если так:

<tr><td>Этот пропустить</td><td class="data field-name">3</td><td class="data field-meta">33</td>

то ничего не меняется, только конкретизировать надо каких детишек брать: var o = $(e).children('[class|=field]');
Ответить с цитированием
  #7 (permalink)  
Старый 09.10.2017, 08:22
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Просто, этот дополнительный элемент может присутствовать, а может и нет. Изменяются динамически.
Ответить с цитированием
  #8 (permalink)  
Старый 09.10.2017, 08:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Делайте так как написано, и не важно будет есть такая ячейка или нет.
Ответить с цитированием
  #9 (permalink)  
Старый 09.10.2017, 11:36
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function() {
    var s = $.map($('.data:even:not(.active)'), function(e) {
        return $(e).text() + ':' + $(e).next().text()
    }).join(',');
    console.log(s)
});
</script>

<table>
<tbody>
<tr><td class="data field-name">2</td><td class="data field-meta">33</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">3</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">4</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">5</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">6</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">7</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">8</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data active field-name">9</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">10</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">11</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">12</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
<tr><td class="data field-name">13</td><td class="data field-meta">22</td><td class="action"><span class="save">Save</span></td></tr>
</tbody>
<table>
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из массива в переменную Sonya Серверные языки и технологии 5 21.09.2017 02:22
Запись в переменную ссылку на функцию Freekazoid Сайт Javascript.ru 4 02.12.2016 15:22
Запись массива в переменную с разделителем. x3zone Events/DOM/Window 5 25.02.2013 10:51
Перебор дерева элементов - не хочет работать скрипт... caca0 Javascript под браузер 7 18.05.2012 20:07
Перебор DOM элементов DjDiablo jQuery 3 04.02.2011 16:26