我有一个标题标签,看起来像这样:
<title>My Page Title - Photo #3</title>
我想使用JavaScript来改变它的数字部分,而不必硬编码"我的页面标题-照片#"字符串生成的服务器端。
我尝试将数字包装在一个span中,以便我可以更改span的内容:
<title>My Page Title - Photo #<span class="photoid">3</span></title>
但是似乎在title
标签中不允许使用HTML。如果可能的话,我真的希望采用类方法,因为这将允许我使用一行jquery,例如:
$('.photoid').html(new_photoid);
我有没有提到照片出现在页面上的几个地方,这就是为什么我希望能够使用这个在线工具同时更改它们?例如:
<p>A paragraph also containing the number <span class="photoid">3</span></p>
标题只能有文本,所以需要解析出来。
document.title = document.title.replace(/d+$/, "new value");
title不能这样设置,它不是。html
的子元素比如
var num = 3;
document.title = "foo "+num
设置标题,然后为这些照片重用num。
$(function () {
var elements = $('.contains_photoid');
elements.html(elements.html().replace("3", "4"));
$(document).attr('title', $(document).attr('title').replace("3", "4"));
});
在本例中看不到标题的变化,但这就是语法。参见使用Jquery更改页面标题
"3"
和"4"
可以改变为任何东西,所以你可以用一个唯一的字符串来代替真实的ID,以便很容易地替换它,如果它出现在文本中的数字已经在它。
Javascript
var photoID = 355; //this assumes you have some code where you set this photoID value
var title = document.title;
title = title.substr(0,title.lastIndexOf('#')+1);
document.title = title+photoID;
http://jsfiddle.net/xrkhA/(我使用div内容,因为你不能在jsfiddle中使用标题)
你可以使用,但是$('title')在IE8中将失败
document.title="new title";
或
$('title').html('new title');
或
$(document).attr('title','new title');