我需要创建一个跨越" 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);
答案 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>');
});
的字符串,这将替换所有带有颜色的项目,因此如果您有多个日期,它将全部替换它们,而不仅仅是这样的一个:
/(\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;
答案 3 :(得分:0)
尝试类似:
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;