请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 4462|回复: 17

jquery ajax的返回值如何过滤? [复制链接]

vgxx 楼主
帖子
8
体力
28
威望
0
发表于 2008-1-30 21:59:50 |显示全部楼层
<script LANGUAGE="JavaScript">
$(function(){
$.get("comment.html",function(rt){  
  $("#main").html(rt);
})
})
</script>

我用jquery,在首页通过ajax读取comment.html页面,代码如上面。这个会把comment.html整个页面都显示出来。我只想要comment.html页id为page中的内容,应该如何过滤?
谢谢
西部数码顶级域名注册商39元抢注!
jubdit 
帖子
255
体力
185
威望
0
居住地
浙江省 杭州市
发表于 2008-1-30 22:34:00 |显示全部楼层
如果你有权修改“comment.html”的话,最好在这个文件里面加注释来标记需要取出的内容,这样直接用正则替换就ok,否则需要先把整个comment.html page 的code存过来,然后用dom把需要的部分抓出来。

没用过jQuery,猜想返回的对象应该是rt,相关的处理语句写在$.get("comment.html",function(rt){  这个function里面就ok了。
I'm CN.[CaiNiao]
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

jubdit 
帖子
255
体力
185
威望
0
居住地
浙江省 杭州市
发表于 2008-1-30 22:35:33 |显示全部楼层
在想jQuery应该不能细致到lz要的功能都可以做到吧?

期待熟悉jQuery的朋友的解答。
I'm CN.[CaiNiao]

使用道具 举报

vgxx 楼主
帖子
8
体力
28
威望
0
发表于 2008-1-30 22:50:26 |显示全部楼层
原帖由 jubdit 于 2008-1-30 22:35 发表
在想jQuery应该不能细致到lz要的功能都可以做到吧?

期待熟悉jQuery的朋友的解答。


谢谢,jubdit。
我有权限修改comment.html。自己的博客,只会css,js没怎么用过。
jQuery应该可以达到过滤的目的。
有熟悉jq的老大请指点。

网上搜到下面这些,按这个弄,没搞出来:

求助:filter在Firefox里出错,不知道是不是我写的不对?

var stext = $(data).filter('#content').html();

data是通过ajax取回的内容,我想进行筛选,只要取回内容里的ID为content的部分。
这样的写法在IE里一切正常,不知道为什么在Firefox里就不行,用Firebug来进行查找错误,提示是jquery-1.2.1.js里第1521 行的“f = eval('false||function(a,i){return ' + f + '}');”这段有问题,不知道是不是BUG,也不知道该如何处理。折腾N久,近乎崩溃了!没办法,本人刚接触jQuery,还是个小菜鸟。


这个问题已经自己解决!
不知道有没有人遇到同样的问题,但我想还是分享一下自己的经验!
用filter 进行筛选的时候,固定的数据如 march.hu 所说的那个(var data = "<p>第一段</p><p id='second'>第二段</p>";),这种没有关系,但用AJAX取回动态数据进行筛选的时候,必须同时指定标签类型和 ID,才能正常进行筛选,要不然在Firefox下会出错。
错误的:var stext = $(data).filter('#content').html();
正确的:var stext = $(data).filter('div#content').html();

使用道具 举报

jubdit 
帖子
255
体力
185
威望
0
居住地
浙江省 杭州市
发表于 2008-1-30 22:52:57 |显示全部楼层
呵呵,说个题外话,看到lz帖的jQuery的这段code,就越发对jQuery没兴趣了。。
f = eval('false||function(a,i){return ' + f + '}');

效率太低的话,做比较复杂的程序就不太合适了。。

[ 本帖最后由 jubdit 于 2008-1-30 23:00 编辑 ]
I'm CN.[CaiNiao]

使用道具 举报

vgxx 楼主
帖子
8
体力
28
威望
0
发表于 2008-1-30 23:04:11 |显示全部楼层
原帖由 jubdit 于 2008-1-30 22:52 发表
呵呵,说个题外话,看到lz帖的jQuery的这段code,就越发对jQuery没兴趣了。。
f = eval('false||function(a,i){return ' + f + '}');

效率太低的话,做比较复杂的程序就不太合适了。。

程序自带的。没办法呵呵

使用道具 举报

comasp 
帖子
465
体力
1681
威望
0
发表于 2008-1-30 23:53:01 |显示全部楼层
comment.html页id为page中的内容:

应该可以根据返回的
然后用find去寻找 #page
新书推荐:<<锋利的jQuery>>

使用道具 举报

skybot 

size

钻石会员 手机认证 

帖子
3236
体力
12466
威望
7
发表于 2008-1-31 09:39:32 |显示全部楼层
<script LANGUAGE="JavaScript">
$(function(){
$.get("comment.html",function(rt){  
  $("#main").html(rt);
//接着来
var contobj =  document.createElement("div");//定义一个新的东东
    contobj.id="myid";
    contobj.innerHTML=rt;//加入 html JS 也可以加入
    $(contobj).find("#page").appendTo("body");//加入新的数据
})
})
</script>
http://www.qlili.com 个人站帮点啊

使用道具 举报

skybot 

size

钻石会员 手机认证 

帖子
3236
体力
12466
威望
7
发表于 2008-1-31 09:41:33 |显示全部楼层
回7楼的,不能用find 找到数据,IE下怎么玩都行,都能得到你想要的灵气,FF就是个垃圾完全不支持XML文件的操作,开发文档也没有.什么都不能显示出来.
http://www.qlili.com 个人站帮点啊

使用道具 举报

vgxx 楼主
帖子
8
体力
28
威望
0
发表于 2008-1-31 13:10:48 |显示全部楼层
原帖由 skybot 于 2008-1-31 09:39 发表

$(function(){
$.get("comment.html",function(rt){  
  $("#main").html(rt);
//接着来
var contobj =  document.createElement("div");//定义一个新的东东
    contobj.id="myid";
    contobj.inne ...

多谢,不过comment.html中的内容还是显示到了#main中,没有达到过滤的目的。

使用道具 举报

快乐笛子

中级会员

帖子
228
体力
843
威望
4
发表于 2008-1-31 14:29:56 |显示全部楼层
截取html字符串中的一段,只靠标签元素或其属性来截取是很麻烦的,特别是很难匹配到结束符,如</div></p>等,即使能找到,其效率也相当有限。

既然lz有权限控制 comment.html ,何不在 comment.html 上做功夫,在你需要的区段外加一些特殊的注释字符串做标识<!--comment begin-->,<!--comment end-->。然后在ajax的返回值中根据上面的标识用 substring 就搞定了嘛。

使用道具 举报

vgxx 楼主
帖子
8
体力
28
威望
0
发表于 2008-1-31 15:25:32 |显示全部楼层
没搞定,换成框架加标记来弄了。
js真难啊。

使用道具 举报

帖子
666
体力
2224
威望
0
居住地
山东省 烟台市
发表于 2008-1-31 15:34:13 |显示全部楼层
可以试一下使用XML和DOM配合操作。我试一下,如果成功了告诉你。

[ 本帖最后由 chensulong 于 2008-1-31 16:33 编辑 ]

使用道具 举报

willko 
帖子
222
体力
423
威望
0
居住地
广东省 深圳市
发表于 2008-1-31 16:42:41 |显示全部楼层

 提示:您可以先修改部分代码再运行



注意,因为服务器没有声明编码,所以乱码了。。html最好是utf-8的。。不然会乱码。。

[ 本帖最后由 willko 于 2008-1-31 16:44 编辑 ]

使用道具 举报

willko 
帖子
222
体力
423
威望
0
居住地
广东省 深圳市
发表于 2008-1-31 16:59:26 |显示全部楼层


ff only.....

使用道具 举报

帖子
42
体力
191
威望
0
发表于 2008-1-31 17:09:37 |显示全部楼层
过滤文本,为啥不用正则?

使用道具 举报

skybot 

size

钻石会员 手机认证 

帖子
3236
体力
12466
威望
7
发表于 2008-2-1 17:30:51 |显示全部楼层
全部用utf-8的不会乱码

willko  的方法是正确的,我就是用这种方法来分开执行SCRIPT和HTML的
http://www.qlili.com 个人站帮点啊

使用道具 举报

冰雪黑鹰

高级会员

帖子
574
体力
793
威望
1
发表于 2008-2-2 11:39:17 |显示全部楼层
$("p").parent("#page")

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-12 15:41 , Processed in 0.115467 second(s), 6 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部