这是一篇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>
答案 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)
正常工作