我正在使用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);
});
});
谢谢!
答案 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()函数设置范围内容。