Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 19.11.2019, 13:01   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 507
Счастье Собрать содержимое span в одну строку

Здравствуйте!
Есть несколько span, как их содержимое собрать в одну строку?

Код:
<table>
              <tbody>
                  <tr>
                     <td>
                           <span>М</span>
                           <span>О</span>
                           <span>С</span>
                           <span>К</span>
                           <span>В</span>  
                           <span>А</span>
                     </td>
                 </tr> 
                <tr>
                     <td>
                           <span>Л</span>
                           <span>О</span>
                           <span>Н</span>
                           <span>Д</span>
                           <span>О</span>
                           <span>Н</span>    
                     </td>
                 </tr> 
            <tbody/>
          </table>
Женя32 вне форума Ответить с цитированием
Старый 19.11.2019, 13:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

совсем непонятно, что надо.

на jQuery можно так:
Код:
jQuery.map( $('table tr span'), function( v, i ) {
       return ( v.textContent );
     }).join( "" ));

https://jsfiddle.net/7b9tm4o5/
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2019, 13:57   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
на jQuery можно так:
Код:
jQuery.map( $('table tr span'), function( v, i ) {
       return ( v.textContent );
     }).join( "" ));
А можно так: https://jsfiddle.net/u1pn0687/
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 19.11.2019, 14:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
А можно так: https://jsfiddle.net/u1pn0687/
Код:
 alert($('table span').text());
Круто!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2019, 14:49   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 507
По умолчанию

Нужно вывести вот так:


М, О, С, К, В, А
Л, О, Н, Д, О, Н

Одна ячейка - td - одна строка.
Женя32 вне форума Ответить с цитированием
Старый 19.11.2019, 15:04   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,590
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
А можно так: https://jsfiddle.net/u1pn0687/
А без jq можно так (результат тот же, но не то, что нужно автору)
https://jsfiddle.net/p6n7umt8/
___________
сейчас попробую дать то, что нужно
Вадим Мошев вне форума Ответить с цитированием
Старый 19.11.2019, 15:17   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,590
По умолчанию

(извините, отлучался)
add: https://jsfiddle.net/p6n7umt8/1/

Код:
let arr = [];
document.querySelectorAll('table td')
  .forEach(e => {
    let text = e.textContent.replace(/\s/g, '');
    arr.push(text)
  })

arr = arr.map(e => {
  return [...e].join(', ')
})

alert( arr.join('\n') )

Последний раз редактировалось Вадим Мошев; 19.11.2019 в 15:20.
Вадим Мошев вне форума Ответить с цитированием
Старый 19.11.2019, 15:54   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

ну и на jQuery (знаю, что коряво, но по другому не умею ;( )
Код:
$("table tr td").each(function(){
   alert(jQuery.map($(this).find('span') , function( v, i ) {
       return ( v.textContent );
     }).join( "," ));
  });
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2019, 15:57   #9
Alex11223
Заблокирован
 
Регистрация: 12.01.2011
Сообщений: 19,503
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Код:
let arr = [];
document.querySelectorAll('table td')
  .forEach(e => {
    let text = e.textContent.replace(/\s/g, '');
    arr.push(text)
  })
это ж map
Alex11223 вне форума Ответить с цитированием
Старый 19.11.2019, 17:50   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,590
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
это ж map
Точно. Спасибо, что поправил. Самое главное, что map я потом и использовал.

Код не может быть сразу красивым, верным и правильным, а особенно в том месте, где он используется не для продакшна, а для подсказки человеку.
Вадим Мошев вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собрать таблицу - Одну из Трех. KolyAle Фриланс 3 08.07.2019 18:41
Помогите собрать формулу в одну строку Petrov210217 Microsoft Office Excel 12 02.02.2019 09:47
Нужно собрать несколько программ в одну(pascal) Necron Помощь студентам 1 21.05.2012 13:24
C++. Собрать две маленькие программки в одну!! || Flashka || Помощь студентам 0 11.05.2010 12:59
Как пропарсив HTML страничку занести результат тегов <span></span> в label? Ramal Работа с сетью в Delphi 4 27.10.2009 03:54


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840