Javascript 单击元素jQuery时获取父窗体类
让我们从HTML开始: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
<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")