首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.attr(“值”)总是返回未定义的?

.attr(“值”)总是返回未定义的?
EN

Stack Overflow用户
提问于 2016-01-30 22:09:12
回答 2查看 3.2K关注 0票数 3

我在我的jQuery中有一个隐藏元素:

代码语言:javascript
复制
<input type="hidden" id="1val" value="24">
var valID = $("#1val").attr("value");

但是,当我尝试打印valID时,它总是以未定义的方式打印?我做错了什么?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-30 22:10:29

使用$('#input-id').val();获取输入值。

票数 2
EN

Stack Overflow用户

发布于 2016-01-30 22:23:12

使用.prop().val()方法获取当前value属性总是更安全的:

代码语言:javascript
复制
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属性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35107760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档