我有个很奇怪的问题。我不知道为什么$.data在更新数据后没有返回正确的值,即使元素在firebug中有正确的值。
演示:http://jsfiddle.net/gv5cR/
<div>
<input type="text" name="price" id="price"/>
</div>
<button type="button" id="submit" data-price="100">Submit</button>
<div id="result"></div>
<script>
$(document).ready(function(){
$('#price').change(function(){
$('#submit').attr('data-price',$(this).val());
});
$('#submit').click(function(){
$('#result').html($(this).data('price'));
});
});
<script>
发布于 2014-03-26 06:11:43
您应该使用.data()
设置数据
$('#submit').data('price',$(this).val());
演示--->
http://jsfiddle.net/gv5cR/2/
发布于 2014-03-26 06:12:40
使用类似
$('#submit').click(function(){
$('#result').html($(this).attr('data-price'));
});
发布于 2014-03-26 06:12:02
由于您已经使用.attr()
设置了data-price
值,因此需要使用.attr()
而不是.data()
来获得该值:
$('#result').html($(this).attr('data-price'));
更新Fiddle
https://stackoverflow.com/questions/22652829
复制相似问题