html jQuery 给input赋值问题

有时候用 $.attr('value', '123') 才能把值附上, 有时候得用 $.val('123') 才行, 这是怎么回事有遇到的吗

$.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()

自己多试试就理解了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-14
这个是jquery封装的问题,一般来说attr是给元素的属性赋值,这个适用于所有的html元素。val试用于所有的可用val取值的元素。有一些input元素为了方便取值jquery封装了val方法,但是并不是试用所有元素。
第2个回答  2019-01-14

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>

第3个回答  2019-01-14
简单来说,如果html元素是input,那两种方法都可以,如果不是,那只能用attr这种方法,希望对你有帮助

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网