2012-03-16 41 views
1

http://jsfiddle.net/Rg8rf/

$("#label").change(function() { 
    var src = $(this).data('value'); 
    alert(src); 
}); 

如何抓住從data-value的值?

+0

謝謝你們。 +1 :) – 2012-03-16 07:34:53

回答

5

這在這種情況下意味着選擇列表,所以你必須抓住裏面的 「這個」 選擇的值。這會爲你工作:

$("#label").change(function() { 
    var src = $(this).children(":selected").data('value'); 
    alert(src); 
});​ 

它很容易在這種情況下測試,如果你不知道,不得到你所期望的價值。裏面的變化的方法,你可以只寫console.debug(本),並期待在控制檯中看到什麼裏面,或者只是警報($(本).attr(「ID」))

2

如果你想抓住標籤的價值只是

$("#label").change(function() { 
    var src = $(this).find("option"); 
    src.each(function(){ 
     alert($(this).attr('data-value')); 
    }); 
}); 

看看本作的試玩http://jsfiddle.net/viyancs/ZhGt3/5/

使用功能.html()以獲取變量值這樣<element> value </element>,如果anothe情況下<element> <div>test</div> <element>,您可以自定義與選擇器jquery ...但確保元素已有方法你想使用什麼。

+0

我認爲輸入元素,選擇等不會支持html(),你必須使用text()或val() – coolguy 2012-03-16 07:24:12

+0

沒有支持,你可以在這個演示中看到http://jsfiddle.net/viyancs/ZhGt3/3 /請在我的答案中刪除你的減號。 – viyancs 2012-03-16 07:27:04

+0

我怎麼upvoted..html方法將得到所有的選項值在那..我認爲那不是他想要的 – coolguy 2012-03-16 07:30:09

1
$("#label").change(function() { 
    var src = $(this).val(); //for value 
    alert(src); 
}); 
$("#label").change(function() { 
    var src = $(this).find('option:selected').text(); //for the text 
    alert(src); 
}); 

對於任何其他PARAMS

$("#label").change(function() { 
    var src = $(this).find('option:selected').attr('data-value'); //for other params 
    alert(src); 
}); 
2

使用

$(this).children('option:selected').attr('data-value'); 
1
$(this).find('option:selected').attr('data-value'); 

.data()無關與它做。離開無辜:D

+2

.data(「value」)是** data - **前綴的快捷鍵,所以它可以正常工作。 http://api.jquery.com/jQuery.data/ – 2012-03-16 07:25:08

1

它不工作原因$(this)引用#label而不是選定的選項。

$("#label").on('change', function() { 
    var src = $('option:selected').data('value'); 
    alert(src); 
});​ 

小提琴: http://jsfiddle.net/AAugX/

1
$("#label").change(function() { 
    var src = $(this).find('option:selected').data('value); 
    alert(src); 
}); 

我相應的修改你的小提琴。 http://jsfiddle.net/Rg8rf/1/

1

var src = $(this).find('option:selected')。data('value');

without attr