将span添加到子字符串/文本的一部分

时间:2017-12-01 03:20:33

标签: javascript jquery replace split var

我需要创建一个跨越" 8:00"所以我可以改变它的颜色。显然我无法编辑实际的html。

<span class="foo">The time is 8:00</span>

我能够将它拆分到正确的位置:

var justTheTime= $('.foo').text().split('The time is')[1]; 

但无法弄清楚如何在其周围添加范围。帮助

var withStyles = $('<span style="color:red">'+onlyTheDate+'</span>');
$(".foo").replace(justTheTime,withStyles);

4 个答案:

答案 0 :(得分:0)

.replace()不是jQuery函数;它是一个JavaScript。此外,您似乎尝试添加未定义的变量onlyTheDate而不是justTheTime - 我已在我的示例中更正了这一点。

您可以使用 replaceWith() ,只需手动插入文本。请注意,您需要将The time is包装在自己的<span>

var justTheTime = $('.foo').text().split('The time is')[1];
var withStyles = $('<span>The time is</span><span style="color:red">' + justTheTime + '</span>');
$('.foo').replaceWith(withStyles);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="foo">The time is 8:00</span>

希望这会有所帮助:)

答案 1 :(得分:0)

git fetch origin方法对字符串而不是jQuery元素进行操作。

使用正则表达式替换范围内容,并使用replace()进行更新。

.html()

答案 2 :(得分:0)

您可以查找格式化为时间$('.foo').html(function(i, oldtext) { return oldtext.replace(/The time is (.*)/, 'The time is <span style="color:red">$1</span>'); }); 的字符串,这将替换所有带有颜色的项目,因此如果您有多个日期,它将全部替换它们,而不仅仅是这样的一个:

&#13;
&#13;
/(\d{1,2}):(\d{1,2})/g
&#13;
$('.foo').html(
    $('.foo').text().replace(/(\d{1,2}):(\d{1,2})/g, '<span class="red">$1:$2</span>')
)
&#13;
.red {color: red;}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

尝试类似:

&#13;
&#13;
var justTheTime = $('.foo').text().split('The time is')[1];
var spanText = "The time is <span style='color:red'>"+ justTheTime +"</span>";
$('.foo').html(spanText);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="foo">The time is 8:00</span>
&#13;
&#13;
&#13;