jquery如何操作ajax返回的页面数据?

kelly859 2013-01-25 05:40:36
$.ajax( {
url: "list/2/2.html",
dataType:"text",
type: "POST",
success: function(data) {
alert(data);
alert($(data).find("#page_nav a").attr("href"));
result = $(data).find("#container .box");
$("#container").append(result);

$newElems = result;
$newElems.imagesLoaded(function(){
$container.masonry( 'appended', $newElems, true );
});
}
});



第一个alert打印:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="http://localhost:7080/max-project-graphics/">

<title></title>

<link rel="stylesheet" type="text/css" href="static/css/style.css">

<script src="static/js/jquery-1.7.1.min.js"></script>

<script src="static/js/jquery.masonry.min.js"></script>

<script src="static/js/aa.js"></script>

</head>

<body class="demos">

<div id="container"

class="transitions-enabled infinite-scroll clearfix">



<div class="box col2">

<p>

<img src="static/img/4.jpg" />

</p>

</div>



<div class="box col2">

<p>

<img src="static/img/5.jpg" />

</p>

</div>



</div>

<!-- #container -->



<div id="page_nav">

<a href="list/2/20.html">下一页</a>

</div>



<footer id="site-footer">

jQuery Masonry by

<a href="http://desandro.com">David DeSandro</a>

</footer>

</body>

</html>



第2个alert打印:
undefined

应该是${data}根本就不是1个对象,纠结一下午了,帮忙看看谢
...全文
606 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2013-02-22
  • 打赏
  • 举报
回复
dataType用html
mycoolaccount 2013-02-21
  • 打赏
  • 举报
回复
datatype怎么不用JSON?
json6518507 2013-02-21
  • 打赏
  • 举报
回复
dataType:string
ahring111 2013-01-31
  • 打赏
  • 举报
回复
$.ajax( { url: "list/2/2.html", dataType:"text", type: "POST", success: function(data) { alert(data); alert($(data).find("#page_nav a").eq(0).attr("href")); result = $(data).find("#container .box"); $("#container").append(result); $newElems = result; $newElems.imagesLoaded(function(){ $container.masonry( 'appended', $newElems,true ); }); } }); 红色字体这一块试试。。。
cllover 2013-01-29
  • 打赏
  • 举报
回复
url: $("#page_nav a").attr("href"), type: "POST", success: function(data) { 这里的data是jquery返回的dom对象.你写的data是返回的字符串
bbjbepzz 2013-01-29
  • 打赏
  • 举报
回复
result = $(data).find("#container .box"); $("#container").append(result); ID不要重名
kelly859 2013-01-28
  • 打赏
  • 举报
回复
感谢楼上各位的回答,问题解决了。就是${data}不是dom对象的问题 小弟还有一个疑问,就是我参考的例子(http://kayosite.com/jquery-ajax-turn-page-and-cascade-layout.html),这个就是直接操作data的,没有转成dom,不知道是为啥了
ddgx 2013-01-28
  • 打赏
  • 举报
回复
html代码格式也是一种XML格式的字符串,那么用$(data)后就转换为xml的jquery对象了。
$(data).find("#page_nav a").attr("href"),实际上操作的jquery xml对象而不是jquery dom对象。

bagol 2013-01-27
  • 打赏
  • 举报
回复
data是ajax返回的纯文本字符串,不是dom对象,$(data)为null。是否可以考虑先将data放到$.ajax的页面中,然后执行自己的操作:$("xxx").html(data).find("#page_nav a").attr("href")
ddgx 2013-01-27
  • 打赏
  • 举报
回复
在你的页面上放个隐藏div,然后用load方法加载后在进行dom操作:
<script>
$(document).ready(function() {
    $("#hideContainer").load("2.html",
    function() {
        var data = $("#hideContainer");
        alert($(data).find("#page_nav a").attr("href"));
        result = $(data).find("#container .box");
        $("#container").append(result);

        /* $newElems = result;
                    $newElems.imagesLoaded(function(){
                        $container.masonry( 'appended', $newElems, true );
                    });*/
    })
})

</script>
</head >

<body > 
<div style = "display:none"id = "hideContainer" > </div>
</body > 
</html>
爱若如梦 2013-01-27
  • 打赏
  • 举报
回复
引用 楼主 kelly859 的回复:
JavaScript code?12345678910111213141516$.ajax( { url: "list/2/2.html", dataType:"text", type: "POST", success: function(data) {……
返回的没有被执行即eval,所以是当做字符串处理,可以考虑放到一个html标签中,如document.getElementBy("xxx").innerHTML = data;然后再去查。 或者把字符串eval一下转成js能识别出的dom对象。
SoftLy 2013-01-26
  • 打赏
  • 举报
回复
data只是你用ajax请求返回的数据吧,又不是htmlelement,用$(data)是取不到的,不在dom中
ILOVE_ASPNET 2013-01-26
  • 打赏
  • 举报
回复
不是 find 和children的问题,这里都没有嵌套的a 用哪个 如果是正常的都可以取的到。
ILOVE_ASPNET 2013-01-26
  • 打赏
  • 举报
回复
你第一个弹出来的HTML 字符串啊, 又不是一个dom对象, 你这样取他里面的元素应该取不到吧。
kelly859 2013-01-25
  • 打赏
  • 举报
回复
谢谢回复 alert($(data).find("#page_nav a").children("href").text());打印是空白 应该不是children的原因,我觉得整个${data},对象都有问题 dataType:"text",dataType:"html",不设置,都试过
六百万 2013-01-25
  • 打赏
  • 举报
回复
alert($(data).find("#page_nav a").attr("href")); 把这一句换成 alert($(data).find("#page_nav a").children("href").text()); 试试

87,910

社区成员

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

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