我想通过Ajax获取数据并将它们填充到div .content中,但它不起作用。
HTML:
<div class="review">
<span class="seefull" rel="1">see full content</span>
<div class="content"></div>
<div class="c_createtime">(06-15 04:03:13)</div>
</div>
<div class="seg_r"><img src="http://img.dachaocai.com/sys/seg_2.gif"/></div>
<div class="review">
<span class="seefull" rel="2">see full content</span>
<div class="content">12</div>
<div class="c_createtime">(07-31 12:46:18)</div>
</div>
jQuery的:
$(function() {
$(".seefull").click(function() {
$.ajax({
url: "/j/fullreview",
data: {"t":"b","id":$(this).attr("rel")},
success: function(data) {
$(this).find("div .content").html(data);
}
})
})
})
答案 0 :(得分:3)
$(function(){
$(".seefull").click( function (){
var $this = $(this);
$.ajax({
url:"/j/fullreview",
data:{"t":"b","id":$this.attr("rel")},
success:function(data){
$this.parent().find(".content").html(data);
}
});
});
});
这是关于“这个”的背景。
当ajax回调函数执行时,这不再引用原始对象。因此,您需要将其原始引用存储在变量上,并从那里使用该变量,以确保您始终引用正确的元素。
var $this = $(this);
使用上面的代码,您的对象现在存储在$ this变量中。
$this.parent().find(".content").html(data);
找到元素的父元素,然后找到类“content”的元素,并更改其内容。
我没有找到类内容的div,因为从你的代码中只有一个元素与该类。
答案 1 :(得分:1)
究竟什么不起作用?
乍一看,我相信......
$(this).find("div .content").html(data);
应该是......
$(this).parent().find("div.content").html(data);
如果data
是JSON对象,那么您将看到的输出将类似[Object] object
而不是任何有用的数据,因此需要额外解析JSON对象。
答案 2 :(得分:0)
这完全取决于背景......
$(function(){
$(".seefull").click(function(){
vat that = $(this);
$.ajax({
url:"/j/fullreview",
data:{"t":"b","id":$(this).attr("rel")},
success:function(data){
that.next().html(data);
}
})
})
})
答案 3 :(得分:0)
变化
$(this).find("div .content").html(data);
到
$(this).parent().find("div.content").html(data);
问题1 :
$(this)
指的是点击的跨度,不包含div。使用parent()
在dom-tree中升级并在那里搜索div.content
。
问题2 :
div .content
表示“div中包含内容的任何元素”
这应该是div.content
,意思是“带有内容的