2011-12-02 82 views
0

我有麻煩分配id到一個Javascript變量之後選擇使用jQuery一個div動態分配DIV ID

$(function() { 
    $(".do").live("click",function() 
     { 

     var id = $(this).attr("id"); 

     $.ajax({ 
      //reload div using js var id 
      $('id').fadeOut('fast').load('http://example.com/get.php').fadeIn("slow"); 

      }); 

     return false; 
      }); 
}); 

當我打電話固定的div它工作得很好這樣的:

$('#staticdiv').fadeOut('fast').load('http://example.com/get.php').fadeIn("slow"); 

如何從含有其id JavaScript變量選擇div

*編輯
下面是一個例子,如果div的:
按鍵進入重載

<a href="" class="do" id="12">click to reload</a> 

DIV重裝:

<div id="12">to be refreshed</div> 


牢記 「12」 我們的動態並可以是任何變量。

回答

2

你可以使用此:

$("#"+id).fadeOut() // ... 

不過,我不建議做這種方式(它沒有標識上工作的事情);試試這個,而不是(這應該在工作的事情沒有標識):

$(".do").live("click", function() { 
    var me = $(this); 
    $.ajax({ 
     // ... 
     success: function(data) { 
      me.fadeOut('fast').load('http://example.com/get.php').fadeIn("slow"); 
     } 
     // ... 
    }); 
    return false; 
}); 

另外,我不知道,如果你真的想要那個.fadeOut().load().fadeIn()鏈; load將不會等待fadeOut完成並且fadeIn將不會等待load完成(儘管fadeIn將等待fadeOut完成)。如果您有與問題,您應該試試這個:

me.fadeOut('fast', function() { 
    me.load('http://www.example.com/get.php', function() { 
     me.fadeIn('slow'); 
    }); 
}); 
+0

當我試圖'$( 「#」 + ID).fadeOut()// ...'它刷新成發送DO(父DIV),而不是特定div。你所提供的替代/更好的例子也會有相同的結果,加載'$(this);'只會重新加載點擊按鈕的div,不是? – Jared

+0

@cjaredrun:你想重新加載的'div'是否具有'do'類或者是具有'do'類的父類?如果父級擁有'do'類,那麼您應該將選擇器從'.do'更改爲'.do> div'。 – icktoofay

+0

我編輯後與我正在使用的div信息和我激活'.do'的方式。 – Jared

1

你不應該使用變量id而不是字符串'id'

如下:

$('#'+id).fadeOut('fast').load('http://example.com/get.php').fadeIn("slow");