https://www.web-tinker.com/article/20115.html 感谢这位大牛 上面的链接里讲述的是区别,
用prop()和attr()获取value值异同 参照http://blog.youkuaiyun.com/u014291497/article/details/50639628
结论:动态获取值用val()或者prop("value"),不要用attr("value");
需要注意的是
<input id="myint" type="text" />
<button id="mybtn">点击</button>
$(function(){
$("#mybtn").on("click",function(e){
$("#myint").attr("value","123");
var attr = $("#myint").attr("value");
var prop = $("#myint").prop("value");
var val = $("#myint").val();
console.log(attr);
console.log(prop);
console.log(val);
});
});
结果
- 123
- 123
- 123
但是
<input id="myint" type="text" />
<button id="mybtn">点击</button>
$(function(){
$("#mybtn").on("click",function(e){
$("#myint").attr("value","123");
$("#myint").prop("value","456");
var attr = $("#myint").attr("value");
var prop = $("#myint").prop("value");
var val = $("#myint").val();
console.log(attr);
console.log(prop);
console.log(val);
});
});
结果
- 123
- 456
- 456
而且点击按钮后,input标签例的value值变成123,但是input框里的数字是456 -_- 可想而知,想获取用户输入的值,一定不能用attr("value")方法,可以用val()或者prop("value"),因为用户只能操作输入框,而不能操作input标签