我在我的jQuery中有一个隐藏元素:
<input type="hidden" id="1val" value="24">
var valID = $("#1val").attr("value");但是,当我尝试打印valID时,它总是以未定义的方式打印?我做错了什么?
谢谢
发布于 2016-01-30 22:10:29
使用$('#input-id').val();获取输入值。
发布于 2016-01-30 22:23:12
使用.prop()或.val()方法获取当前value属性总是更安全的:
var valID = $("#1val").val();
// or
var valID = $("#1val").prop("value");在jQuery版本1.9中,.attr()方法将只获得元素的属性,而该属性可能实际上并不反映元素的实际属性。
根据1.9发行说明版本,在.attr()与.prop()之间
输入元素的value属性与属性是这种歧义的另一个例子。该属性通常反映从HTML 读取的值;该属性反映当前值。由于
.val()方法是获取或设置表单元素值的推荐jQuery方法,这种混淆通常不会影响用户。 但是,当使用像input[value=abc]这样的选择器时,它应该始终根据值属性进行选择,而不是由用户对属性进行任何更改,例如,从用户输入文本输入。在jQuery 1.9中,它的行为是正确和一致的。早期版本的jQuery在使用该属性时有时会使用该属性。
在幕后,从版本1.9开始,.attr()方法将只返回元素的当前属性(而不是属性)。属性和属性可能实际上并不相同。例如,如果元素最初没有属性,然后使用像.val()这样的方法编程地设置值,那么属性就不会改变,这意味着.attr('value')将返回undefined。
如上所述,使用.prop()或.val()方法来获取元素的当前value属性。
https://stackoverflow.com/questions/35107760
复制相似问题