从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别


背景:

在清空input file标签选中值时,分别用了以下方法,发现有的对有的错:

【√】$("#file")[0].value = "";
【√】$("#file")[0].value = null;

【×】$("#file").attr("value","");
【×】$("#file").attr("value",null);
【√】$("#file").val("");
【√】$("#file").val(null);

  为什么同样是改变value值,得到的结果却不同呢?

释疑:

  查阅stackoverflow《jQuery .val() vs .attr(“value”)》Question,里面解答如下:

The gist is that .attr(...) is only getting the objects value at the start (when the html is created). val() is getting the object's property value which can change many times.

  翻译过来就是:

.val()设置的是input的value属性,input是HTMLInputElement的实例,value是通过setter方法定义的,当被赋值时,就会把值写到input里面;而改变value属性的方法,实际上操作的是dom的value属性,会触发浏览器的repaint,更新input的值。

以上所述是小编给大家介绍的从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对phpstudy网站的支持!



相关阅读:
利用JQuery制作符合Web标准的QQ弹出消息
Java的Struts框架中append标签与generator标签的使用
惠普盛赞Win10:开始菜单回归是最正确的做法
win10提示计算机显卡内存不足情况的解决办法介绍
jquery实现人性化的有选择性禁用鼠标右键
WinXP系统tbi文件怎么打开?WinXP系统打开tbi文件的方法
JavaScript字符串对象substring方法入门实例(用于截取字符串)
Win7升级Win10出现错误代码0xC1900101-0x30017的解决办法
学习JVM之java内存区域与异常
举例详解CSS的z-index属性的使用
跟我学Laravel之请求(Request)的生命周期
减少访问DOM的次数提升javascript性能
JavaScript中闭包之浅析解读(必看篇)
解析C++编程中异常相关的堆栈展开和throw()异常规范
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4