Заменить символ тегом с помощью jquery - PullRequest
0 голосов
/ 06 января 2010

У меня есть спецификация для продуктов в текстовом документе, которые мне нужно перенести в HTML.

Может показаться немного странным, но я пытаюсь заменить теги абзаца на два столбца таблицы, так что:

<p>Load (kg):5,000, 10,000, 20,000, 30,000</p>
<p>Excitation  Voltage: 10vdc recommended, 20vdc maximum</p>

в это

 <tr>
    <td>Load (kg)</td>
    <td>5,000, 10,000, 20,000, 30,000</td>
  </tr>

 <tr>
    <td>Excitation  Voltage</td>
    <td>10vdc recommended, 20vdc maximum</td>
  </tr>

Для замены тега абзаца я использовал функцию ниже

$("p").each(function () {
      $(this).replaceWith("<td>" + $(this).text() + '</td>');
    });

Так что мне нужно подключиться к ':', чтобы закрыть и закрыть и открыть другую таблицу данных (столбец)

Любая помощь высоко ценится

Заранее спасибо

Дом

Ответы [ 3 ]

2 голосов
/ 06 января 2010

Это характерно для вашего конкретного примера и предполагает хорошо подготовленные данные. Если у вас может быть несколько двоеточий в тексте, вам нужно будет настроить использование аргумента limit для split, чтобы ограничить его двумя результатами.

$("p").each(function () {
  var text = $(this).text().split(':');
  $(this).replaceWith("<td>" + text[0] + '</td><td>' + text[1] + '</td>');
});
1 голос
/ 06 января 2010

Самый простой способ - использовать regExp:

$('p').each(function() {
    $(this).replaceWith("<tr><td>"+$(this).text().replace(/\:\s?/, '</td><td>')+'</td></tr>');
})

Также поддерживает несколько ячеек и удаление пробела после двоеточия.

1 голос
/ 06 января 2010

Вы можете использовать split и получить значение индекса 0 для размещения в первом td и значение индекса 1 во втором td.

Примерно так

$("p").each ( function() {
    var splitArr = $(this).text().split(':');
    var str = "<table><tr><td>";
    str+= splitArr[0] + "</td><td>";
    str += splitArr[1] + "</td>";
    str += "</tr></table>";

    $(this).replaceWith ( str );
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...