搜索结果中如何让关键字改变颜色

global9wei 2008-08-18 04:43:21
例如我一个搜索页面,搜索结果都放在ChangeColor这个容器中

<div id="Searth">
搜索结果.....
</div>

如何通过js让搜索结果中和关键字一致的改成红色字显示?
...全文
867 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
global9wei 2008-08-18
  • 打赏
  • 举报
回复
算了,感觉讲的这么清楚了,你没理解
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 global9wei 的回复:]
晕,你要具体内容干吗?
我是来问方法的,不是来问具体改变哪个文字的
[/Quote]
那你里面存的是对象,你怎么改变,能改变,是不是很麻烦。
global9wei 2008-08-18
  • 打赏
  • 举报
回复
<div id="Searth">
<div class='a'>搜索结果地一条,我是大美女</div>
<div class='a'>大美女是我</div>
</div>

我现在搜索 大美女

需要结果是:
<div id="Searth">
<div class='a'>搜索结果地一条,我是<font color=red>大美女</font></div>
<div class='a'><font color=red>大美女</font>是我</div>
</div>

这样够清楚了吧
global9wei 2008-08-18
  • 打赏
  • 举报
回复
晕,你要具体内容干吗?
我是来问方法的,不是来问具体改变哪个文字的
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 global9wei 的回复:]
那用户如果想要的结果是title和content中都包含关键字,那更麻烦了?

我是在一个容器里改变颜色,不是整个页面
[/Quote]
那请给出你容器里具体内容。
global9wei 2008-08-18
  • 打赏
  • 举报
回复
我刚看到一个效果不错,就是只有点击那个链接才有效,直接调用好象不行,大家帮我看看如何才能用




<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=gb2312'>
<title>在线用户列表</title>
<style type='text/css'>
body{font-family:'宋体';font-size:12pt;}td{font-family:'宋体';font-size:10.5pt;line-height:135%;}.p105{font-family:'宋体';color:blue;font-size:10.5pt;}.p9{color=FFFF00;font-size:9pt;}A{color:white;text-decoration:none;}A:Hover{color:black;text-decoration:none;}A:Active{color:black}
</style>
<script language='JavaScript'>
var NS4 = (document.layers);
var IE4 = (document.all);
var win = window;
var n=0;
function findInPage(str){
var txt,i,found;
if(str==''){return false;}
if(NS4)
{
if(!win.find(str))
while(win.find(str,false,true))
n++;
else{n++;}
}
if(IE4)
{
txt=win.document.body.createTextRange();
for(i=0;i<=n&&(found=txt.findText(str))!=false;i++)
{ txt.moveStart('character',1);
txt.moveEnd('textedit'); }
if(found){txt.moveStart('character',-1);txt.findText(str);txt.select();txt.scrollIntoView();n++;}else{if(n>0){n=0;findInPage(str);}}}return false;}

var searth="大家";
findInPage(searth);
</script>
</head>
<body bgcolor=3A6EA5 >

<a href='###' onclick='findInPage("大");'>查找</a>

大家稻田青蛙西瓜种子
</body>
</html>
global9wei 2008-08-18
  • 打赏
  • 举报
回复
那用户如果想要的结果是title和content中都包含关键字,那更麻烦了?

我是在一个容器里改变颜色,不是整个页面
global9wei 2008-08-18
  • 打赏
  • 举报
回复
晕,你这方法多浪费资源,我是想通过js减轻服务器负担
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 global9wei 的回复:]
我只是不知道怎么写,因该很简单

例如思路如下:

var SearthText=document.getElementById("Searth");
SearthText=SearthText.replace('关键字',' <font color=red>关键字 </font>')

document.getElementById("Searth").innerHTML=SearthText;
[/Quote]
如果返回的是对象,你怎么变色啊,get出来,然后再变,那用户如果想要的结果是title和content中都包含关键字,那更麻烦了。
那前台就忙死拉,到方法里搞吧。。
  • 打赏
  • 举报
回复

比如:表中有俩字段:name,content
搜索关键字:csdn 提交
public List<User> search(String key) throws Exception {
getConnection();
List<User> users = new ArrayList<User>();
Statement stmt = DriverManager.createStatement();
String sql = "";
if (key == null) {
sql = "select * from table_name";
} else {
sql = "select * from table_name where content like "%" + key + "%";
}
ResultSet rs = stmt.exxcuteQuery(sql);
while (rs) {
String name = rs.getString("name");
String content = rs.getString("content");
if (key != null) {
name = name.replaceAll(key,"<font color='red'>" + key + "</font>");
content = content.replaceAll(key,"<font color='red'>" + key + "</font>");
}
User user = new User();
user.setName(name);
user.setContent(content);
users.add(user);
}
return users;
这样一个方法就实现了查询和显示全部功能,查询功能也可以实现返红的效果。
}
global9wei 2008-08-18
  • 打赏
  • 举报
回复
我只是不知道怎么写,因该很简单

例如思路如下:

var SearthText=document.getElementById("Searth");
SearthText=SearthText.replace('关键字',' <font color=red>关键字 </font>')

document.getElementById("Searth").innerHTML=SearthText;
global9wei 2008-08-18
  • 打赏
  • 举报
回复
我只是不知道怎么写,因该很简单

例如思路如下:

var SearthText=document.getElementById("loginid_info");
SearthText=SearthText.replace('关键字','<font color=red>关键字</font>')

document.getElementById("loginid_info").innerHTML=SearthText;
  • 打赏
  • 举报
回复
还不如在方法里改变呢。然后把结果放容器里,js就管显示。
global9wei 2008-08-18
  • 打赏
  • 举报
回复
例如我一个搜索页面,搜索结果都放在Searth这个容器中

<div id="Searth">
搜索结果.....
</div>

如何通过js让搜索结果中和关键字一致的改成红色字显示?




<div id="Searth">
例如搜索到了20个结果,就放这里
</div>
  • 打赏
  • 举报
回复
谁知道容器里放的啥啊,容器里放的表中记录?
global9wei 2008-08-18
  • 打赏
  • 举报
回复
能给具体的js代码吗?

首先需要得到 Searth 容器中的内容,然后才是替换
  • 打赏
  • 举报
回复
关键字:key
name = name.replaceAll(key,"<font color=red>" + key + "</font>");
  • 打赏
  • 举报
回复
replaceAll

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧