0

我的博客文章标题格式如下:

<h1 class="entry-title">category text...blog post title</h1>

(“...”实际上是一个 html 实体&#8230;

它们有数百个,因此手动添加 html 代码需要很长时间。

我需要做的是在文本之前插入一个 span 标签,这很简单:

$('.entry-title').prepend('<span class="category">');

并在“...”之前插入结束标签

所以结果是

<h1 class="entry-title"><span class="category">category text</span>...blog post title</h1>

所以我需要找到子字符串 '...' 并在前面添加</span>

谁能告诉我如何做到这一点?

4

3 回答 3

0

您需要在插入结束标签的同时插入开始标签。

var index = $('.entry-title').html().indexOf('...');

$('.entry-title').html('<span class="category">' + $('.entry-title').html().substring(0, index) + '</span>' + $('.entry-title').html().substring(index));
于 2013-08-05T17:58:49.133 回答
0

您可以使用正则表达式

$('.entry-title').each(function() {
    var el = $(this);
    el.html(el.html().replace(/^(.*?)\…/, '<span class="category">$1</span>&#8230;'));
});

小提琴

于 2013-08-05T18:00:13.153 回答
0

用户下面的代码片段。

var title = $('title').text();
var titlePart = title.split("...");
var newTitle = "<span>" + titlePart[0] + "</span>" + titlePart[1];
$('title').text(newTitle);
于 2013-08-05T18:02:21.913 回答