zoukankan      html  css  js  c++  java
  • jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变

    之前项目中使用的是jquery-1.6.3.js,在这个版本号中,假设我们想获取输入框的值,能够使用$("input").attr("value")或者是$("input").val(),这2种方式是等价的。

    <input type="text" id="speed" />
    $("#speed").attr("value");
    $("#speed").val();


    近期到了还有一个项目组,使用的是jquery-2.1.1.js,结果发现了问题。我使用的是IE10浏览器。

    <input type="text" id="speed" value="45"/>
    $("#speed").attr("value");//始终是45

    假设text控件给了默认值,那么使用attr("value")得到的结果始终是45,不会得到输入控件实际输入的值。

     

    <input type="text" id="speed" />
    $("#speed").attr("value");//始终是undefined

    假设text控件没有设置value属性,那么使用attr("value")得到的结果始终是undefined。

    经过測试,无论是1.6.3版本号,还是2.1.1版本号,使用val()函数。总是可以成功获取输入框的实际值。

    <input type="text" id="speed" value="45"/>
    $("#speed").val();//可以得到输入框的实际值


     

    我又尝试了1.9.1版本号,发现attr("value")和val()的表现跟2.1.1版本号是一致的。

    不知道jquery是从哪儿个版本号发生改变的。反正以后大家使用jquery时须要注意这个问题。假设没有想到版本号升级带来的不兼容问题。那么可能会找不到问题的所在。由此可见版本号升级是一件非常有风险的事情。一定要经过充分的验证,最好能有自己主动化的验证用例。假设全部的測试用例都能通过,那么基本意味着。版本号的API功能都是兼容的,升级后风险相对来说非常小。假设不明确版本号发生的改变。就冒然升级。风险非常大。

  • 相关阅读:
    SQLZOO:SELECT from WORLD Tutorial
    Spyder——小技巧+快捷键
    JDK国内镜像
    debian 安装 plymouth 美化开机动画
    docker 国内镜像加速
    有关npm镜像加速的问题 yarn nvm yrm
    调整vscode工具栏侧边栏字体大小
    github的淘宝代理?
    fcitx5 主题设置
    debian testing安装qemu-kvm和virt-manager
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7367983.html
Copyright © 2011-2022 走看看