jquery中select事件绑定怎么获取不到$(this)?

发布于 2022-09-05 22:45:58 字数 963 浏览 40 评论 0

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
            <select name="province"><option>请选择</option><option>请选择</option><option>请选择</option></select>
            <select  name="city"><option>请选择</option></select>
            <select  name="area"><option>请选择</option></select>
</body> 
  <script>
    $('select[name="province"]').bind('change',fn());
    function fn(){
        console.log($(this));
    }
  </script>
</html>

控制台的结果window,而且我还没点击select,还没触发change就显示window,
请问问题出在哪,怎么才能正确获取this?

ps:把bind里面的fn(),改为fn,确实可以console出$(this),但是如果要在fn中传入参数怎么办?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

盗琴音 2022-09-12 22:45:58

$('select[name="province"]').bind('change',fn());
改为
$('select[name="province"]').bind('change',fn);

你之前那个在bind时就运行了。。。

夢归不見 2022-09-12 22:45:58

$('select[name="province"]').bind('change',fn); 把这里的()去掉就可以了。

但可醉心 2022-09-12 22:45:58
  $('select[name="province"]').on('change',function(){
        fn($(this));
    });
    function fn(obj){
        console.log(obj);
    }
一百个冬季 2022-09-12 22:45:58

你这个this指向window,因为你的外层环境就是window啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文