0

我正在使用 jQuery 在 span 标签内回显页面标题。这很好用,除了每个页面在标题标签中都有网站标题页面标题。我怎样才能删除它并简单地拥有页面标题?

例如:Superlong Sites 的标题 - 关于我们应该是:关于我们

我的代码:

jQuery(document).ready(function() {
    var href = jQuery(location).attr('href');
    var url = jQuery(this).attr('title');
    jQuery('#current_url').html(url);

    $('span#current_url').each(function() { // <---the code in question
        console.log($(this).text());
        var text = $(this).text().replace('Superlong Site\'s Title- ', '');
        $(this).text(text); 
    });
});

谢谢!

4

4 回答 4

2

根据破折号将文本拆分为一个数组,然后获取数组中的最后一项:

console.log($(this).text());
var text = $(this).text().split('-');
$(this).text(text[text.length-1]);

如果需要,您也可以修剪前面的空间。

编辑 - 如果您希望它更快一点,您可以使用 RegEx 替换(感谢 f00bar):

$(this).text($(this).text().replace(/^[^-]+- ?/,''));

如果您对 RegEx 感到满意,这会更快,但如果不是,那么您可能会考虑其他选项,因为它更明确且可维护。

于 2013-02-25T15:28:31.317 回答
1

此代码段应该对您有所帮助:)

var url = jQuery(this).attr('title');
var shortUrl = url.substring(url.indexOf("- ") + 1, url.length);
jQuery('#current_url').html(shortUrl);
于 2013-02-25T15:29:30.410 回答
1

那是因为您的replace函数没有找到所需的字符串,您的标题是Superlong Sites' Title -并且您正在尝试替换Superlong Site's Title-.

$(document).ready(function() {
  $('#current_url').text(function(){
     return $('title').text().replace("Superlong Site's Title - ", '');
  })
});
于 2013-02-25T15:29:55.483 回答
-1

尝试使用 .html() 函数设置跨度内容。

于 2013-02-25T15:32:10.190 回答