将字符插入HTML Div中每行的开头

时间:2014-08-01 13:23:35

标签: javascript jquery html wordpress replace

所以在过去的几天里,我一直在寻找一种解决方案,允许我在div中的每一行的开头插入一个字符(特别是美元符号)。这样我就可以在后端输入没有美元符号的命令并自动插入。

目前,该网站的后端正在使用带有自定义短代码[command]的WordPress。加载站点时,将返回命令:

<div id="command">
    First Command<br />
    Second Command<br />
    Last Command<br />
</div>

我尝试使用JavaScript将“<br />”标记替换为“<br />&dollar;”,但它并未替换所有标记。

感谢任何帮助。 干杯, 乔

3 个答案:

答案 0 :(得分:0)

尝试替换正则表达式。有些休息可能不包含斜线或空格,我认为这就是为什么你可能错过了一些。

var str = str.replace(/<br\s*\/?>/ig, "<br />&dollar;");

参数g可确保在字符串中替换所有匹配项。参数i使搜索不区分大小写。

答案 1 :(得分:0)

这应该对你有用

var textLines = ($('#command').html()).split('<br>');
var newLines = $.map(textLines,function(line){
    return '&dollar;' + line;
});
$('#command').html(newLines.join('<br>'))

输出

$ First Command
$ Second Command
$ Last Command
$

答案 2 :(得分:0)

对于多个相同的ID:

$(function() {
 var textNodes = $("[id^=command]");
  $.each(textNodes, function(index, value) {
    var nodes = $(this).contents().filter(function() {
        return this.nodeType === 3;
    });
    $.each(nodes,function(index, value) {
      if(index!=nodes.length-1)   $(this).before("&dollar;");
    });

  });
});

<强> Example : DEMO

$(function() {
 var textNodes = $("#command").contents().filter(function() {
    return this.nodeType === 3;
  })
$.each(textNodes,function(index, value) {
  if(index!=textNodes.length-1) $(this).before("&dollar;");
});
});

<强>输出:

$ First Command
$ Second Command
$ Last Command

<强> DEMO