代码之家  ›  专栏  ›  技术社区  ›  firepol

jquery$(this).parent()…无法从外部调用的函数工作

  •  1
  • firepol  · 技术社区  · 14 年前

    如下面代码所示。我有一个外部调用的jQuery函数。

    我不明白为什么我不能得到类名,我得到一个带有“未定义”的警告,我期待的是“classifyClass”,你能帮忙吗?谢谢您。

    <html>
    <head>
        <meta charset="utf-8">
        <title>parent</title>
        <script src="./js/jquery-1.4.2.min.js"></script>
        <script>
                function classify() {
                    //some jquery stuff here alredy, and it works...
    
                    //now I want to get/set the parent class, but not working (getting an alert with written "undefined", why?
                    var myclass = $(this).parent().attr('class');
                    alert(myclass);
                }
        </script>
    </head>
    <body>
    
    <div class="pos">
        <div class="classifyClass">
            <div style="width:50px;height:50px;background-color:red;" onclick="javascript:classify();return false;"></div>
            <div style="width:50px;height:50px;background-color:green;" onclick="javascript:classify();return false;"></div>
        </div>
    </div>
    
    <div id="feedback"></div>
    
    </body>
    </html>
    

    1 回复  |  直到 14 年前
        1
  •  4
  •   Nick Craver    14 年前

    在你目前的情况下 this 指的是 window ,就像这样:

    onclick="return classify(this);"
    

    使用匹配脚本:

    function classify(elem) {
      //some jquery stuff here alredy, and it works...
      var myclass = $(elem).parent().attr('class');
      alert(myclass);
      return false;
    }
    

    或者(更好),不引人注目地绑定(使用当前函数, 会起作用的),就像这样:

    $(".classifyClass > div").click(classify);