从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
背景:
在清空inputfile标签选中值时,分别用了以下方法,发现有的对有的错:
【√】$("#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,里面解答如下:
Thegististhat.attr(...)isonlygettingtheobjectsvalueatthestart(whenthehtmliscreated).val()isgettingtheobject'spropertyvaluewhichcanchangemanytimes.
翻译过来就是:
.val()设置的是input的value属性,input是HTMLInputElement的实例,value是通过setter方法定义的,当被赋值时,就会把值写到input里面;而改变value属性的方法,实际上操作的是dom的value属性,会触发浏览器的repaint,更新input的值。
以上所述是小编给大家介绍的从重置inputfile标签中看jQuery的.val()和.attr(“value”)区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!