html jQuery 给input赋值问题

有时候用$.attr('value','123')才能把值附上,有时候得用$.val('123')才行,这是怎么回事有遇到的吗... 有时候用 $.attr('value', '123') 才能把值附上, 有时候得用 $.val('123') 才行, 这是怎么回事有遇到的吗 展开
 我来答
前端晨话
2019-01-14 · 专注前端话题以及前端教育
前端晨话
采纳数:104 获赞数:228

向TA提问 私信TA
展开全部

$.attr('value', '123')这里的value是指元素节点上的属性值,即DOM节点上的属性值;

而$.val('123')是input的属性值,当其value值被赋值时则是通过setter方法定义的。

例如:<input id="s1" type="" name="" value="2">

这个value="2"和input的value值是两个概念。

value="2"是DOM结点上的属性值,如果想改变这个属性值,需要这样操作$("#s1").attr("value","123"),这个属性值是可见的。

input上的值是它本身的value值,如果想获取则是$.val(),如果想赋值则用$.val('123')。

改变或者获取<input>、<textarea>、<select>、<option>、<button>的值都是用val(),改变或者获取DOM节点上的属性值,则用attr()

自己多试试就理解了。

匿名用户
2019-01-14
展开全部
这个是jquery封装的问题,一般来说attr是给元素的属性赋值,这个适用于所有的html元素。val试用于所有的可用val取值的元素。有一些input元素为了方便取值jquery封装了val方法,但是并不是试用所有元素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
划船不动浆靠浪
2019-01-14 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:145
采纳率:76%
帮助的人:24.7万
展开全部

input表单的赋值方法一般情况都是用“选择器.val("值")”,很少用“选择器.attr("属性名","属性值")”,“选择器.val("值")”是表单的专属赋值和取值的方法,用在其他的节点没有用比如“<a></a>“,”<div></div>”等这些非表单控件就会用“选择器.attr("属性名","属性值")”来添加属性属性值和取得属性值。

<script type="text/javascript">
        /**
 * 表单控件
 */
//赋值:给<input type="text" name="text1" id="text2"/>赋值
$("input").val("请输入文本");
//取值:取得<input type="text" name="text1" id="text2"/>的值
$("input").val();

/**
 * 非表单控件
 */
//赋值:添加class属性 -> $("span").addClass("class");
$("span").attr("class","class");
//取值:获取div属性id的值
$("div").attr("id");
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
datouxiaoxu
2019-01-14 · TA获得超过1262个赞
知道小有建树答主
回答量:1022
采纳率:83%
帮助的人:480万
展开全部
简单来说,如果html元素是input,那两种方法都可以,如果不是,那只能用attr这种方法,希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式