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

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

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


Ответ
 
Опции темы
Старый 19.11.2019, 14:01   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 445
Счастье Собрать содержимое 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, 14: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, 14: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, 15:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

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

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


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

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

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

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

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

(извините, отлучался)
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 в 16:20.
Вадим Мошев вне форума Ответить с цитированием
Старый 19.11.2019, 16: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, 16:57   #9
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,487
По умолчанию

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

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

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

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

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

Опции темы


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