1

我在一个游戏网站上,页面标题并不反映游戏标题,而是网站名称和网站描述。每个游戏名称都出现在他们的页面上,如下所示:

<div id="gr-header">
   <div>
      <h1><a href='/games/'>Games Room</a> - Some Game Name Here</h1>
   </div>
   <div>
      some other stuff
   </div>
</div>

现在,我正在手动将 URL 中的游戏 ID 与相应的游戏标题进行匹配,并执行以下idlist操作gamelist按相应顺序命名。

for (i=0; i < idlist.length; i++)
{ 
   if (gameid[0] == idlist[i])
   { 
      document.title = gamelist[i];
      break;
   }
}

然而,这是不雅的,因为有太多的游戏手动列出它们。如何从网页中获取“Some Game Name Here”文本并将所述文本存储在变量中?

4

2 回答 2

0

从您发布的 HTML 结构中,试试这个

var title = $('#gr-header h1').clone().children().remove().end().text().replace(/^[\W]+/, '');
document.title = title;

这得到了的直接文本h1(即不包括其子项的文本a)。

(正则表达式删除游戏名称开头的“-”。根据需要调整/删除。

小提琴:http: //jsfiddle.net/gcMTt/1/

于 2012-07-17T13:43:12.823 回答
0

使用querySelector和一个简单的正则表达式

var nameElement = document.querySelector ("#gr-header div h1");
var gameName    = nameElement.textContent.replace (/^.*\s-\s/, "");
document.title  = gameName;
于 2012-07-17T13:53:59.103 回答