$("#label").change(function() {
var src = $(this).data('value');
alert(src);
});
如何从data-value
获取值?
答案 0 :(得分:5)
这种情况意味着选择列表,因此您必须在“this”中捕获所选值。这对你有用:
$("#label").change(function() {
var src = $(this).children(":selected").data('value');
alert(src);
});
如果您不确定并且没有达到预期的价值,那么在这种情况下很容易测试。在更改方法中,您可以编写console.debug(this)并在控制台中查看内部的内容,或者只是警告($(this).attr(“id”))
答案 1 :(得分: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>
,如果是另一种情况<element> <div>test</div> <element>
,您可以使用选择器jquery自定义...但要确保元素已经有方法是什么你想用吗?
答案 2 :(得分:2)
使用
$(this).children('option:selected').attr('data-value');
答案 3 :(得分: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);
});
对于任何其他参数
$("#label").change(function() {
var src = $(this).find('option:selected').attr('data-value'); //for other params
alert(src);
});
答案 4 :(得分:1)
$(this).find('option:selected').attr('data-value');
.data()
与此无关。留下无辜的人:D
答案 5 :(得分:1)
它不工作因为$(this)指的是#label而不是所选的选项。
$("#label").on('change', function() {
var src = $('option:selected').data('value');
alert(src);
});
答案 6 :(得分:1)
$("#label").change(function() {
var src = $(this).find('option:selected').data('value);
alert(src);
});
我相应地修改了你的小提琴。 http://jsfiddle.net/Rg8rf/1/
答案 7 :(得分:1)
var src = $(this).find('option:selected')。data('value');
没有attr