正如您在下面的代码中看到的那样。我有一个外部调用的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>
P.S。我不想使用我需要调用函数的jquery选择器,因为我传递了一些asp.net参数,我在这里简化了示例,专注于主要问题。谢谢。
答案 0 :(得分:4)
在您当前的上下文中,this
引用window
对象。您需要传递this
,如下所示:
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;
}
或(更好),不引人注意地绑定(使用当前函数,this
将起作用),如下所示:
$(".classifyClass > div").click(classify);