【发布时间】:2012-04-18 04:14:31
【问题描述】:
我一直在尝试使用 JQuery 在静态 HTML 页面中进行简单搜索。不得不提的是,这只是我第一次使用 JQuery。
我正在尝试更改页面中找到的单词的背景,这是我迄今为止尝试过的:
myJavascript.js:
$(document).ready(function(){
$('#searchfor').keyup(function(){
page = $('#all_text').text();
searchedText = $('#searchfor').val();
$("p:contains('"+searchedText+"')").css("color", "white");
});
});
这也是 HTML 代码:
page.html:
<html>
<head>
<title>Test page</title>
</head>
<body bgcolor="#55c066">
<input type="text" id="searchfor"></input>
<p id="all_text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euism modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.
<font color="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tinci futurum.</font>
</p>
</body>
<script src="jquery-1.7.2.min.js"></script>
<script src="myJavascript.js"></script>
</html>
使用 Firebug 检查页面后,我可以看到 JQuery 中的变量确实从输入字段中获取了值,但我想我搞砸了突出显示部分。
提前感谢您的帮助!
【问题讨论】:
-
您需要只下划线还是整个段落(
p)? -
只有单词,我把标题改成了我真正想要的,突出显示找到的单词。
-
如果您只想在搜索到的单词下划线,您需要将单词包裹在一个html标签中,例如
span(将span的样式设置为下划线)并替换内容p元素的 -
抱歉后面的编辑,我想突出显示找到的单词。这就是我的代码正在尝试做的事情。下划线是我尝试的第一件事,然后我改变主意并尝试突出显示该单词但忘记更改标题。
-
一个想法:获取段落的文本(
$("p:contains('"+searchedText+"')").html());现在使用正则表达式并用<span style="text-decoration:underline"></span>替换(换行)这些单词,并将它们设置为段落的.html()
标签: jquery html css search highlight