使用jquery用符号替换符号

时间:2010-01-06 13:20:46

标签: jquery replace

我对文本文档中的产品进行了规范,我需要将其转换为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>

要替换段落标记,我使用了函数bellow

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

所以我必须联系':'来关闭并关闭并打开另一个表数据(列)

任何帮助非常感谢

提前谢谢

的Dom

3 个答案:

答案 0 :(得分:2)

这是特定于您的特定示例,并假设条件良好的数据。如果文本中可以有多个冒号,则需要调整使用split的limit参数将其限制为2个结果。

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

答案 1 :(得分:1)

您可以使用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 );
});

答案 2 :(得分:1)

最简单的方法可能是使用regExp:

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

还支持多个单元格并在冒号后剥离空格。