0

我在 HTML 页面中有几个元素(它们不共享标签类型),我想在其中突出显示用户输入的单词的所有实例。我的想法是,我可以通过使用 replace 函数将所有说“fox”的实例替换为

<font class='highlight'>fox</font>  

我的问题是,我怎样才能使这些元素可识别?我尝试使用类,但我公司的 IE 版本不支持 getElementsByClassName。有谁知道更好的方法吗?

我的页面可能看起来的示例

<body>
    <h1>All about foxes</h1>
    <font>I'm a fox</font>
</body>

只是为了说明它们是不同类型的标签。在该示例中,如果用户输入“fox”,则 h1 标记和字体标记中的 fox 将被突出显示。显然,必须使用一些东西来识别 h1 和字体标签作为我可以抓取所有成员的某个组的一部分。

因为页面上显示的内容也是动态确定的,所以我需要一种使用 Javascript 来执行此操作的方法。

编辑:对前面代码示例的补充。

<body>
    <h1>All about foxes</h1>
    <font>I'm a fox</font>
    <h3>I'm not a fox</h3>
</body>

我需要一种专门标记 h1 和字体标签的方法(并不是说所有 h1 和字体都应该被标记),以便它们会突出显示而 h3 不会(以及页面上任何其他 fox 实例)。此外,在我的环境中包含外部 JS 文件(或任何外部文件)是很痛苦的。出于这个原因,如果我不必使用 JQuery,我会更喜欢它。

4

1 回答 1

1

如果你已经class='highlight'在适当的地方,你可以使用以下,它在功能上等同于getElementsByClassName

elems = document.getElementsByTagName("*");
for ( i=0; i<elems.length; i++ )
{
  if ( elems[i].className == "highlight" )
     { elems[i].style.backgroundColor = "yellow"; }
}

示例:http: //jsfiddle.net/XU8Qz/

只需进行您需要的任何样式更改,而不是将背景颜色设置为黄色。

于 2013-07-26T18:17:36.143 回答