Я должен обработать html сообщений электронной почты и должен преобразовать html сообщения в простую таблицу со строками и столбцами.
Ниже приведен один сценарий, в котором я просто не могу найти ответ:
<td>
<p class="productDetails">
Product:
Brocade peplum pencil dress
<br />
Qty: 1
<br />
Size: Size 12
<br />
Colour: Black
<br />
Price: GBP 50.00
<br />
</p>
</td>
Мне нужно преобразовать его в следующий формат:
<td>
<td>
Product:
Brocade peplum pencil dress
</td>
<td>
Qty: 1
</td>
<td>
Size: Size 12
</td>
<td>
Colour: Black
</td>
<td>
Price: GBP 50.00
</td>
</td>
Я избавлюсь от столбцов в столбце с помощью unwrap()
, но я застрял на том, как заменить <br>
с тд, потому что пытаемся использовать </td><td>
, чтобы заменить <br>
не работает.
У меня есть несколько подобных сценариев, и было бы очень полезно, если я смогу пройти мимо этого момента.
Я думаю, вы хотите создать новую таблицу внутри этого td
потому что у вас не может быть вложенного td
напрямую; вы можете попробовать что-то вроде этого:
$(document).ready(function(){
//Create the table wrapping p tag
$('.productDetails').wrap('<table><tr>');
//Remove p tag and wrap each item with a td
$('.productDetails').contents().unwrap().wrap('<td>');
//Remove td who has a br element inside
$('td').filter(function() {
return $(this).html() === '<br>';
}).remove();
})
Проверьте этот пример Fiddle
Это было протестировано только на Chrome и Firefox
Хорошо, так что я использовал заменить <br>
с </td><td>
идеи и придумал это.
var str = '<td>' + $('.productDetails').html();
str = String(str.substring(0,str.lastIndexOf("<br>")) + '</td>').replace(/<br>/g, '</td><td>')
$('#table2 tr').html(str);
<p>
с именем класса.
$('br').replaceWith('</td><td>');
не работа? Вот рабочая скрипка: jsfiddle.net/hPftR .