前言
在数据处理的时候,往往会使用select供用户对数据进行选择,我们可以使用change()方法来判断用户是否改变了select的值,change()后,直接弹出select的value就是用户选择的结果,但是怎么获取其选择前的结果呢?
如果使用click()方法貌似可行,点击select框,change()方法还没出发时就弹出select的val(),但是操作后会发现,change()方法触发后,会第二次触发click()方法,也就是click弹出来的结果也会变成change后的值,所以click这么使用行不通,可以用其他变量接收第一次click获取的value,有兴趣的可自己考虑一下。
解决办法
实际上还有更简单的方法,直接用focus()方法替换click()方法:
<body>
<div class="container">
<select>
<option value="中文">中文</option>
<option value="英文">英文</option>
<option value="日文">日文</option>
<option value="德文">德文</option>
</select>
</div>
</body>
<script>
$(function () {
$('select').change(function () {
console.log($(this).val()) //改变后的值
}).focus(function () {
console.log($(this).val()) //改变前的值
})
})
</script>

网友评论