Вы можете использовать следующий jQuery для создания массива строк в нужном вам формате.
var valueArray = $('#delme bt').map(function() {
return $(this).text().replace(/^(.*):$/, '$1') + ': ' + $(this).next('bb').text();
});
Теперь вы можете манипулировать этим массивом строк по своему усмотрению, например, используя .join()
для создания одной строки.
EDIT: Объяснение главной строки внутри функции .map()
:
т.е. $(this).text().replace(/^(.*):$/, '$1') + ': ' + $(this).next('bb').text();
Эта строка создает объединенную строку вжелаемый формат.Давайте разберем два хитрых компонента (игнорируя ': '
):
$(this).text().replace(/^(.*):$/, '$1')
: получит текстовое содержимое текущего элемента <bt>
($(this).text()
) в цикле отображения,а затем использует регулярное выражение для удаления любого :
в конце.Я сделал это, потому что в вашем примере HTML первый элемент содержал текст «Test1:», в то время как остальные не имели двоеточие в конце.Удалив его таким образом, я обеспечил согласованный вывод (в противном случае первой строкой была бы «Test1 :: Test1Value»). $(this).next('bb').text()
: это просто возвращает текст следующего элемента после текущего <bt>
в DOM, который является <bb>
элементом.
Дайте мне знать, если это имеет больше смысла.: -)