如何选择$(this)儿童div?

时间:2011-01-27 13:23:02

标签: jquery ajax

这是一篇AJAX帖子。有一组按钮,我在每个按钮后添加一条div#消息。

我希望当用户点击每个按钮时,单词hello将显示在每个div#消息中。 如何在div#message'之前添加$(this)?

JS:

success: function(){
    $('#message').fadeIn(1000, function() {
        $('#message').html("hello");
    })
    $('#message').fadeOut(1000, function() {
        $('#message').html('');
    })

CSS:

#message{display:none;float:right}

HTML:

<div class='post'><a href="" class="ajaxpost" id="'.row['id'].'" name="ajaxpost">'.row['title'].'</a><div id="message"></div></div>

3 个答案:

答案 0 :(得分:2)

你可以写

$(this).children('div#message')

如果您还想搜索后代,请拨打find而不是children

然而,它实际上不会起作用 在success回调中,this不会引用您的元素 您可以通过在AJAX参数中传递context: this或通过将外部函数中的变量设置为this并使用它来改变它。


但是,你不应该首先这样做 ID应该是唯一的 如果您在不同的区块中有多个div#message,则应使用class代替id

答案 1 :(得分:0)

添加具有相同ID的多个div是个坏主意。改为使用类。

您可以执行以下查询:

$('.message',this).fadeIn(...

答案 2 :(得分:0)

在我的情况下,children(...)无效。

  

如果您还想搜索后代,请调用find而不是子项。

所以在我的情况下只有find(.class_name)正常工作