2014-02-06 90 views
1
<script> 
$(document).ready(function(e) { 
    $('.btn').click(function(){ 
     alert($(this).val()); 
    }); 
}); 
</script> 
<style> 
.btn{width:20px; height:20px; background:red;} 
</style> 

<div class="btn" value="a"></div> 
<div class="btn" value="b"></div> 
<div class="btn" value="c"></div> 

我有很多div按鈕使用循環創建從數據庫。元素值到元素

嘗試檢測每個按鈕的值。所以當用戶點擊時,我可以從按鈕中獲得值。

我的問題是,是否有任何方法將值設置爲元素?還是有其他選擇?

如果我使用輸入類型隱藏,它不可見,如果我使用輸入類型按鈕,文本的值將顯示。

+1

'div'沒有值,這是無效HTML – adeneo

回答

4

div元素不能有值。那些是用於表單控件的。

如果要將任意數據存儲在屬性中,請使用data-屬性。

<div class="btn" data-letter="a"></div> 

alert($(this).data('letter')); 

也就是說,如果你想有一個按鈕,然後使用<button>。瀏覽者知道他們是互動元素。他們告訴用戶他們是互動元素。人們可以集中精力。屏幕閱讀器會通知他們。您可以爲其功能提供服務器端回退。

<button value="a">What does this button do?</button> 

然後,您可以使用.val(),因爲按鈕是窗體控件。

+0

數據值與數據之間的差異一封信? – Ben

+0

HTML中有一個'value'屬性,所以避免重複使用這個詞減少了混淆的機會,'letter'是相當隨意的,但暗示應該挑選一些有意義的東西。 – Quentin

0

使用text代替

alert($(this).text()); 

VAL()只對輸入元件

1

如果用文字想的那樣,使用

alert($(this).text()); 

如果你想要的值,使用:

alert($(this).attr('value')); 

如果你給div一個data-value='a'那麼你可以使用

alert($(this).data('value')); 
+0

所以我可以在其他元素中放置數據值? – Ben

+0

是的,你可以給所有你想要的元素賦予「數據值」。只要確保你在'jQuery'中使用'.data('value')'來調用它。 @BenWong – Albzi