为什么这个“下一个”不起作用?

时间:2011-09-15 10:08:46

标签: javascript jquery

我想通过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);
      }
    })
  })
})

4 个答案:

答案 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,意思是“带有内容的