Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356

Получить данные из таблицы

29.06.2016, 19:03. Показов 7871. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Таблица генерируется динамически, Мы с одной статической таблицы выбираем предметы переносим их в другую таблицу.
И вот нужно с другой таблицы динамической собрать все данные которые нужны в цикле.
#garant = это статический родитель.

JavaScript Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$('#garant').append(
            '<tr><td class="cell col-md-1 id">'+id+'</td>'+
                    '<td class="cell col-md-1"><img height="50px;" src="'+image+'"></td>'+
                    '<td class="cell col-md-1">'+weapon+'</td>'+
                    '<td class="cell col-md-1">'+name+'</td>'+
                    '<td class="cell col-md-2">'+price+'</td>'+
                    '<td class="cell col-md-3">'+
                    '<input type="text" name="chance" placeholder="%">'+
                    '</td>'+
                    '<td class="cell col-md-4">'+
                    '<div class="profile-input-price-btn col-md-12">'+
                       '<button class="col-md-12 delete" >Удалить</button>'+
                    '</div>'+
                    '</td></tr>'
                    );
Выше код добавляется строка в таблицу.
Нужно через цикл в массив(объект) загнать данные(image,weapon,name,price) каждой строки внутри <tbody id="garant">


Пробовал так не получилось что делал не так?
JavaScript Скопировано
1
2
3
4
$('tbody#garant').each(function(){
            var garantI = $(this).closest('td').find('.id').text();
            console.log(garantI);
         });
Добавлено через 10 минут
JavaScript Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
$('tbody#garant > tr').each(function(i,v){
            var garantI = [
                           $(this).find('.id').text(), 
                           // $(this).find('td > img').attr('src'), 
                           $(this).find('.weapon').text(),
                           $(this).find('.name').text(),
                           $(this).find('.price').text(),
                           $(this).find('td > .chance').val(),
                           ];
 
            console.log(garantI);
         });
Получился такой вариант но у меня иероглифы местами
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2016, 19:03
Ответы с готовыми решениями:

Получить данные из таблицы селектами и записать в БД
Добрый день. Задача: Сделать страницу с табелем смены. На страницу выводится табличка со списком сотрудников - картинка во вложении. ...

Как получить данные из всей строки таблицы
Как получить данные из всей строки таблицы т.е нажал я на кнопку1 и получил данные из ячеек со значениями one two,а нажал на кнопку2...

Получить данные из строки с отмеченным чекбоксом таблицы Jquery DataTables
Есть таблица, выведенная из MySQL. Для сортировки и постраничной навигации используется плагин Jquery DataTables. Плагин подключил таким...

6
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.06.2016, 19:05  [ТС]
Получить данные из таблицы
0
 Аватар для dzendev
181 / 103 / 48
Регистрация: 12.03.2016
Сообщений: 260
29.06.2016, 19:29
Лучший ответ Сообщение было отмечено maruo как решение

Решение

closest('td') из документации jquery
Получает набор, содержащий ближайшие родительские элементы, которые удовлетворяют указанному селектору, включая начальный элемент.
Сначала, сlosest смотрит на текущий элемент: удовлетворяет-ли он указанному выражению, если да, то просто возвращается непосредственно сам элемент. Если не удовлетворяет, то будет далее продолжаться просмотр документа, родитель за родителем, до тех пор, пока не будет найден соответствующий указанному выражению элемент. В случае, если ни одного элемента не найдено, то ничего не будет возвращено.
Вы выбрали элемент tbody#garant, а затем пытаетесь найти у него родительский элемент td

Что касается второго кода он рабочий, только он берёт строку из ячейки таблицы как есть вместе с переносами строк, это видно на скриншоте консоли. Попробуйте поставить в конце после .text() функцию .trim()
Вот так я сделал
HTML5 Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<table>
  <tr>
    <td class="id">Lorem ipsum1.</td>
    <td class="id2">Lorem ipsum11.</td>
  </tr>
  <tr>
    <td class="id">
      Lorem ipsum2.
    </td>
    <td class="id2">
      Lorem ipsum22.
    </td>
  </tr>
  <tr>
    <td class="id">Lorem ipsum3.</td>
    <td class="id2">Lorem ipsum33.</td>
  </tr>
</table>
JavaScript Скопировано
1
2
3
4
5
6
7
8
9
$('tbody > tr').each(function(i,v){
            var garantI = [
                           $(this).find('.id').text().trim(), 
$(this).find('.id2').text() 
                          
                           ];
 
            console.log(garantI);
         });
Демонстрация http://codepen.io/anon/pen/rLygVw?editors=1111 - если включить консоль в кодепен видно как выводятся значения массива с функцией .trim и без неё
1
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.06.2016, 19:36  [ТС]
dzendev, трим решил, верно. Скажите вот сейчас сохраняется 1 массив только последний.
А нужно что бы каждая ячейка таблицы массив и все это дело в массив.

что то типо такого же как в php

PHP Скопировано
1
2
3
foreach($data as $key => $value){
$data[] = array($key => $value);
}
JavaScript Скопировано
1
2
3
4
5
6
7
8
 $('tbody#garant > tr').each(function(){
         
            garantI = 
                        [
                           {'id'    : $(this).find('.id').text().trim()}, 
                           {'chance' : $(this).find('td > .chance').val()}
                        ];
         });
0
 Аватар для dzendev
181 / 103 / 48
Регистрация: 12.03.2016
Сообщений: 260
29.06.2016, 19:45
Если имеется ввиду многомерный массив, то так
JavaScript Скопировано
1
2
3
4
5
6
7
var garantI = [];
$('tbody > tr').each(function(i,v){
   garantI[i] = [
      $(this).find('.id').text().trim(), 
      $(this).find('.id2').text().trim()
   ];
});
1
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.06.2016, 19:45  [ТС]
И тут поспешил решил так
JavaScript Скопировано
1
2
3
4
5
6
7
  $('tbody#main > tr').each(function(){
         
            mainI.push([
                           {'id'    : $(this).find('.id').text().trim()}, 
                           {'chance' : $(this).find('td > .chance').val()}
                        ]);
         });
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 523
06.06.2022, 21:54
Блин, почему нет универсального способа получить все элементы сразу?
HTML5 Скопировано
1
2
3
4
5
6
<table id="objects">
    <tbody>
        <tr></tr>
        <!--и т.д.-->
    </tbody>
</table>

JavaScript Скопировано
1
2
3
$('#objects tbody tr').each(function(fow){
        groups.push($(this))
    })
не хочет выполняться.

PS. Документ готов, таблица отрисована.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2022, 21:54
Помогаю со студенческими работами здесь

Получить данные с таблицы
Здравствуйте! Есть код html таблицы: &lt;table id=&quot;units_home&quot; style=&quot;width:100%&quot;&gt; &lt;tbody&gt;&lt;tr&gt;&lt;th...

Получить данные из ячейки таблицы
Доброго времени суток. Я только учусь, не пинайте строго. У меня такой вопрос, нужно из ячейки выведенной таблицы получить информацию в...

Как получить данные из таблицы бд ajax-ом?
в общем требуется получить данные из таблицы бд, на php вывод сделан, но говорят лучше ajax использовать, сколько искал не могу найти...

Получить данные из таблицы, сформированной AJAX
Имеется такая страница http://www.forexpros.ru/commodities/gold-historical-data Там есть таблица, данные в которую подгружаются с помощью...

Как получить данные строки таблицы
Здравствуйте, помогите пожалуйста новичку! Есть таблица, к ней прикручен листнер cellclick, который выводит значение ячейки над которой был...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи. Формулы от LM по моему решению пока не проверял. В итоговой её формуле видно её заблуждение.
Hrethgir 10.04.2025
В продолжение Эта LM дала ответ похожий на нормальный. В комментриях мой комментарий - похоже она ошиблась с выведением итоговой формулы, но остальные проверю. Assistant qwen2. 5-14b-instruct . . . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
Подключение Kafka к Elasticsearch
Codd 09.04.2025
Apache Kafka и Elasticsearch — две мощные технологии, которые при совместном использовании создают эффективную платформу для обработки и анализа данных в реальном времени. Kafka, выступая в роли. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер