jQuery获取select标签change()前的值和change()后的值

前言

在数据处理的时候,往往会使用select供用户对数据进行选择,我们可以使用change()方法来判断用户是否改变了select的值,change()后,直接弹出select的value就是用户选择的结果,但是怎么获取其选择前的结果呢?

如果使用click()方法貌似可行,点击select框,change()方法还没出发时就弹出select的val(),但是操作后会发现,change()方法触发后,会第二次触发click()方法,也就是click弹出来的结果也会变成change后的值,所以click这么使用行不通,可以用其他变量接收第一次click获取的value,有兴趣的可自己考虑一下。

实际上还有更简单的方法,直接用focus()方法替换click()方法:

<div class="container"> <select> <option value="中文">中文</option> <option value="英文">英文</option> <option value="日文">日文</option> <option value="德文">德文</option> </select> </body> <script> $(function () { $('select').change(function () { console.log($(this).val()) //改变后的值 }).focus(function () { console.log($(this).val()) //改变前的值 </script>