Javascript 单击元素jQuery时获取父窗体类

Javascript 单击元素jQuery时获取父窗体类,javascript,jquery,find,parent,classname,Javascript,Jquery,Find,Parent,Classname,让我们从HTML开始: <form class="send_units"> <div class="buttons"> <div id="button_attack" class="button"> <div class="caption at">Attack!</div> </div> <div id="button_support" c

让我们从HTML开始:

<form class="send_units">
    <div class="buttons">
        <div id="button_attack" class="button">
            <div class="caption at">Attack!</div>
        </div>
        <div id="button_support" class="button">
            <div class="caption sp">Support!</div>
        </div>
    </div>
</form>
因此,当用户单击带有
class='caption at'
的按钮时,我们必须检查表单类是否为send\u units

我尝试了以下方法来获得课程:

jQuery(e).find('form').parent().prop('class')
但它返回“未定义”。(逻辑告诉我:获取单击元素的父元素,使用元素“form”并获取该元素的类名)

有人能解释一下我做错了什么吗


谢谢

试试这个,因为你已经知道div级别了

$(e.target).parent().parent().parent().attr("send_units")
使用
.parents(selector)
遍历DOM中的多个级别,直到所需的元素,并使用
.hasClass(class)
测试类的存在

window.onclick=函数(e){
var clickedClass=e.target.className;
var clickedID=e.target.id;
如果(clickedClass=='标题在'){
变量为发送单位=$(e.target).parents('form').hasClass('send_units');
控制台日志(是发送单元);
如果(是发送单位){
//做事
}
}
}

攻击!
支持!

您可以在中明确检查类
标题
。那么,为什么不在这个元素上添加事件处理程序,而不是在
窗口中添加
?使用jQuery?->
$(“div.caption.at”).on(“click”,function(){$(this).closest(“form”).attr(“class”);}
e
是click事件,而不是clicked on元素。@Andreas,因为我使用了多个事件。这是一个小示例,但其他事件取决于类和ID,或类和标题。还有一个带有特定HTML的事件,所以我在一个函数中使用它们来进行概述!谢谢你的解释,桑蒂莫。很高兴我能帮忙:)
$(e.target).parent().parent().parent().attr("send_units")