2011-11-21 41 views
0

我有一個使用PHP打印的按鈕表。每個按鈕在其數據屬性中都有不同的值,但是都是一樣的。我想要一個特定按鈕的數據屬性的數據屬性的值。這是行不通的:當所有按鈕具有相同的ID時,獲取按鈕數據屬性的值

$(this).find('button').data('myatt') 

上面返回的是第一個按鈕的數據屬性值,而不是用戶點擊的那個。

編輯:的jsfiddle來說明:http://jsfiddle.net/7fkfu/17/

任何想法?謝謝 :)。

+0

Richard的答案應該爲你做。如果不是,請指出您嘗試檢索數據屬性的上下文。代碼中顯示的(非工作)代碼行在哪裏適合您的代碼?顯示一些(生成的)HTML也無妨。 (並且在頁面上沒有超過一個元素具有相同的ID。) – nnnnnn

+0

我已經創建了一個jsfiddle:jsfiddle.net/7fkfu/17希望能夠幫助解釋它。 – ale

回答

3

好的,問題在於你如何試圖使用.on方法:你試圖說on().click(),但你不希望這兩個。 .on()的第一個參數是一個字符串,指示您要處理的事件。然後是一個選擇器,一個可選的數據參數,然後放置實際的處理器。 (還有一個事件地圖格式 - 請參閱.on() doco。)同樣在小提琴中,它正在檢查按鈕[rel=modal],但在HTML中它是rel=test。請嘗試以下操作:

$(function() { 
    $('#mytable').on('click','tr button[rel=test]',function() { 
    alert($(this).data('mydata')); 
    }); 
}); 

更新的提琴的作品:http://jsfiddle.net/7fkfu/19/

另外,不要用相同的ID創建多個元素。 (在這種情況下,不影響你的代碼,但實際上它是無效的HTML,如果你真的嘗試通過ID選擇元素,這將很重要。)

+0

非常感謝,非常感謝:D。 – ale

0

這是否工作:

 
$("#yourButtonId").click(function() { 
alert($(this).val()); 
    //or something else that you want 
}); 

希望它可以幫助

+0

對不起..不能解決它,但謝謝。請參閱http://jsfiddle.net/7fkfu/17/comments可能只能編輯5分鐘(點擊此框解僱) – ale

1

如果你是該按鈕的點擊事件裏面那麼這應該工作:

$(this).data('myatt'); 

注意,你真的不該在同一個頁面上使用相同的ID不會有多個元素!

+0

感謝您的幫助..沒有解決我的問題:(。請參閱http: //jsfiddle.net/7fkfu/16/ – ale

+0

讓那個http://jsfiddle.net/7fkfu/17 – ale

相關問題