2011-01-27 32 views
1

這是一個AJAX帖子。有一組按鈕,我在每個按鈕後添加一個div#消息。

我希望當用戶點擊每個按鈕時,單詞hello將顯示在每個div#消息中。 如何添加一個$(this),在div#message'之前?

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

是什麼$(這)? – Raynos 2011-01-27 13:24:50

回答

2

你可以寫

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

如果您還想搜索後代,請致電find而不是children

但是,它實際上不會工作。
success回調裏面,this不會引用你的元素。
您可以通過在AJAX參數中傳入context: this,或者通過將外部函數中的變量設置爲this並使用該變量來更改該值。


但是,你不應該這樣做的第一個地方。
ID應該是唯一的。
如果您將在不同的塊中有多個div#message s,則應該使用class而不是id

+0

如何在AJAX參數中傳遞`context:this`? – 2011-01-27 13:42:48

0

添加多個具有相同ID的div是一個壞主意。改用類。

你可以做以下查詢:

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

0

在我的情況children(...)沒有正常工作。

如果您還想搜索後代,請致電查找,而不是兒童。

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

相關問題