2013-10-31 80 views
-1

我對jquery有麻煩。具體而言,我有一個div,並在這個div中使用append()函數創建了很多div。這些每個div都具有onclick功能。當我點擊我想要的時候,我需要得到div的id。 jQuery的,如何在同一個div中獲得div的uniqe id

for (var i=1; i<=count ; i++){ 
$('#pages').append('<div onclick="GoToImage(); return false;" id='+i+'; class="pageNo"> </div>'); 

} 

然後GoToImage功能在這裏,

function GoToImage(){ 
var divs = $("div").get(); 


divs = jQuery.unique(divs); 
showSlide(divs);} 

我嘗試過很多辦法不起作用。我必須獲得點擊div的id。

回答

0

裏面GoToImage

var id = this.id; 

,這將給你點擊的div的ID

+0

'$(本).attr( '身份證')'的一個jQuery反模式 - 使用'this.id'。 – Alnitak

+0

也注意到內聯事件處理程序甚至不會正確設置'this' - 它必須像這樣傳遞:'onclick =「GoToImage(this)」'。最好完全避免它們。 – Alnitak

0

只需通過thisonclick()方法:將通過全div對象的功能,你可以得到它的屬性

$('#pages').append('<div onclick="GoToImage(this); return false;" id='+i+'; class="pageNo"> </div>'); 

而在功能上,你可能會得到ID

更新

function GoToImage(MyDivelement){ 
    var id = MyDivelement.id // here you can get IDs you want on clicking div 
} 
+0

Thnks朋友。我得到某事。但我不明白它是如何工作的這段代碼。代碼中的這個元素是什麼? – user2908225

+0

@ user2908225元素是當您點擊div時通過'GoToImage()'傳遞的div對象。 –

+0

@ user2908225如果它對您有幫助,您可以接受適當的答案。 :) –

1

不要使用內聯事件處理程序 - 它們是過時的,將導致你很多的問題。

在這種情況下,你可以使用事件委派:

$('#pages').on('click', 'div.pageNo', GoToImage); 

這樣做只是一次,循環外。從您的代碼中刪除onclick屬性。對div的任何點擊都會觸發#pages元素,它們將由GoToImage處理。

隨着GoToImage,您可以使用this引用點擊DIV,並this.id獲得該元素的ID,你應該真的需要它:

function GoToImage(ev) { 
    var id = this.id; 
    ... 
} 
+0

我認爲你的解決方案是領先的。但我不明白,我也做不到。爲什麼我需要使用on()?你能給我任何例子鏈接? – user2908225

+0

您使用'.on()'因爲這是jQuery的工作原理 - 它是基礎和_very basic_ jQuery的用法 - 請參閱http://api.jquery.com/on/ – Alnitak

+0

因此,由於on()ı不必使用id具體數量。無論如何,它返回點擊元素?我對嗎 ? – user2908225