Jquery document.title在标记之间获取文本
很难找到一个好的标题,但希望这是好的 我现在正在使用:Jquery document.title在标记之间获取文本,jquery,html,Jquery,Html,很难找到一个好的标题,但希望这是好的 我现在正在使用: document.title = page + ' - ' + originalTitle 因此,结果现在是“index-originaltle”。但我会将“页面”更改为类似“a id”的内容,或者只是接管a标记之间的文本,例如: document.title = a id + ' - ' + originalTitle 因此结果将是“Home-originaltle” 我想很容易修复,但在谷歌上很难找到解决方案 编辑:让我输入
document.title = page + ' - ' + originalTitle
因此,结果现在是“index-originaltle”。但我会将“页面”更改为类似“a id”的内容,或者只是接管a标记之间的文本,例如:
document.title = a id + ' - ' + originalTitle
因此结果将是“Home-originaltle”
我想很容易修复,但在谷歌上很难找到解决方案
编辑:让我输入完整的代码来指定我的注释
$(function(){
// part 1
$('#buttons a, nav a').click(function(){
location.hash=$(this).attr('href').match(/(^.*)\./)[1]
$('html, body').animate({ scrollTop: 0 }, 0);
return false
})
// part 2
var originalTitle=document.title
function hashChange(){
var page=location.hash.slice(1)
if (page!=""){
$('#content').load(page+".php #content")
document.title = $('#Home').text() + ' - ' + originalTitle
document.title = $('#Projects').text() + ' - ' + originalTitle
document.title = $('#About').text() + ' - ' + originalTitle
}
}
// part 3
if ("onhashchange" in window){ // cool browser
$(window).on('hashchange',hashChange).trigger('hashchange')
}else{ // lame browser
var lastHash=''
setInterval(function(){
if (lastHash!=location.hash)
hashChange()
lastHash=location.hash
},100)
}
})
我的导航
<div id=buttons">
<a id="Home" href="index.php">Home</a><span>|</span>
<a id="Projects" href="Projects.php">Projects</a><span>|</span>
<a id="About" href="about.php">About</a><span>|</span>
</div>
您可以检索ID中的文本并将其附加到文档标题,如下所示:
document.title = $('#Home').text() + ' - ' + originalTitle
这将选择ID为“home”的元素
$(“#家”)
及
将引用元素中的文本。您可以检索ID中的文本并将其附加到文档标题,如下所示:
document.title = $('#Home').text() + ' - ' + originalTitle
这将选择ID为“home”的元素
$(“#家”)
及
将引用元素中的文本。在HTML5中,您可以将前缀为data-
的自定义属性设置为元素并获取有效的HTML:
<a href="index.html" data-doc-title="Home">Homepage</a>
这样,您就可以根据ID和锚文本值定义独立的标题前缀
有关数据-*
属性的更多信息,请参见
编辑:
您也可以很容易地在vanilla JavaScript中访问这些数据-*
值:
<a href="#" id="yourid" data-doc-title="Your Title">Some Text</a>
请注意:使用datasets
属性比使用getAttribute()
慢,并且不适用于早于11的Internet Explorer版本(请改用getAttribute()
)
来源:在HTML5中,您可以将前缀为数据-
的自定义属性设置为元素,并获取有效的HTML:
<a href="index.html" data-doc-title="Home">Homepage</a>
这样,您就可以根据ID和锚文本值定义独立的标题前缀
有关数据-*
属性的更多信息,请参见
编辑:
您也可以很容易地在vanilla JavaScript中访问这些数据-*
值:
<a href="#" id="yourid" data-doc-title="Your Title">Some Text</a>
请注意:使用datasets
属性比使用getAttribute()
慢,并且不适用于早于11的Internet Explorer版本(请改用getAttribute()
)
来源:作为一名用户,我希望页面标题会更改为我选择的导航链接的标题,为什么需要使用数据前缀?不要试图抨击你的实现,想象一下在网页的某个地方有一个链接“回到图库”。滥用元素id并不酷,从链接中提取标题也不会产生想要的结果(我猜)。对于导航中的链接,您可能是对的,@N.J.Dawson。@Jorus只需查看包含修改代码的基本html文件(将其复制到本地html文件中,并在浏览器中打开)。如您所见,我添加了一个var doc\u title=undefined代码>所以我们有一个变量,可以存储标题。在click()
函数中,我放置了部件,它从
元素获取数据-*
属性。最后,在hashChange()
函数中,我们将文档标题设置为变量(如果变量为空,则设置为nothing)。JSFIDLE无法处理哈希更改。;)@乔卢斯啊,我明白了。hashChange()
功能也会在站点加载时执行。看一看这行,其中设置了文档.标题
。将末尾的empy引号替换为originaltile
变量,它应该可以工作。如果尚未单击任何链接,则这是回退。我也会更新要点,以反映这一变化。作为一个用户,我希望页面的标题会更改为我选择的导航链接的标题,为什么您需要使用数据前缀?不要试图抨击你的实现,想象一下在网页的某个地方有一个链接“回到图库”。滥用元素id并不酷,从链接中提取标题也不会产生想要的结果(我猜)。对于导航中的链接,您可能是对的,@N.J.Dawson。@Jorus只需查看包含修改代码的基本html文件(将其复制到本地html文件中,并在浏览器中打开)。如您所见,我添加了一个var doc\u title=undefined代码>所以我们有一个变量,可以存储标题。在click()
函数中,我放置了部件,它从
元素获取数据-*
属性。最后,在hashChange()
函数中,我们将文档标题设置为变量(如果变量为空,则设置为nothing)。JSFIDLE无法处理哈希更改。;)@乔卢斯啊,我明白了。hashChange()
功能也会在站点加载时执行。看一看这行,其中设置了文档.标题
。将末尾的empy引号替换为originaltile
变量,它应该可以工作。如果尚未单击任何链接,则这是回退。我也会更新要点,以反映这一变化。谢谢大家的反应。是否可以有多个文档标题?因为当我这样做的时候,它不起作用。我的情况是,我将它与ajax.load结合使用。谢谢大家的反应。是否可以有多个文档标题?因为当我这样做的时候,它不起作用。我的情况是,我将它与ajax.load结合使用。