所以在过去的几天里,我一直在寻找一种解决方案,允许我在div中的每一行的开头插入一个字符(特别是美元符号)。这样我就可以在后端输入没有美元符号的命令并自动插入。
目前,该网站的后端正在使用带有自定义短代码[command]的WordPress。加载站点时,将返回命令:
<div id="command">
First Command<br />
Second Command<br />
Last Command<br />
</div>
我尝试使用JavaScript将“<br />
”标记替换为“<br />$
”,但它并未替换所有标记。
感谢任何帮助。 干杯, 乔
答案 0 :(得分:0)
尝试替换正则表达式。有些休息可能不包含斜线或空格,我认为这就是为什么你可能错过了一些。
var str = str.replace(/<br\s*\/?>/ig, "<br />$");
参数g
可确保在字符串中替换所有匹配项。参数i
使搜索不区分大小写。
答案 1 :(得分:0)
这应该对你有用
var textLines = ($('#command').html()).split('<br>');
var newLines = $.map(textLines,function(line){
return '$' + 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("$");
});
});
});
<强> 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("$");
});
});
<强>输出:强>
$ First Command
$ Second Command
$ Last Command
<强> DEMO 强>