jQuery - 如何删除span标记内的字符

时间:2013-02-25 15:25:07

标签: jquery

我正在使用jQuery来回显span标记内的页面标题。 这样可以正常工作,除了每个页面在title标签中都有网站标题页面标题。 如何删除它并简单地拥有页面标题?

Ex:超长网站的标题 - 关于我们应该是:关于我们

我的代码:

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 个答案:

答案 0 :(得分:2)

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

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

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

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

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

如果您对RegEx感到满意,这会更快,但如果没有,那么您可能会考虑另一个选项,因为它更明确和可维护。

答案 1 :(得分:1)

此代码段可以帮助您:)

var url = jQuery(this).attr('title');
var shortUrl = url.substring(url.indexOf("- ") + 1, url.length);
jQuery('#current_url').html(shortUrl);

答案 2 :(得分:1)

这是因为您的replace函数找不到所需的字符串,您的标题为Superlong Sites' Title -,而您正在尝试替换Superlong Site's Title-

$(document).ready(function() {
  $('#current_url').text(function(){
     return $('title').text().replace("Superlong Site's Title - ", '');
  })
});

答案 3 :(得分:-1)

尝试使用.html()函数设置范围内容。