Javascript 选择子体(一个子体除外)
假设我有这个HTML:Javascript 选择子体(一个子体除外),javascript,jquery,html,Javascript,Jquery,Html,假设我有这个HTML: <div class="par"> <div class="s1"> <a href="#" class="s1">link</link> </div> <div class="s8"> <a href="#" class="s1">link</link> <div class="s1"> <a href="#"
<div class="par">
<div class="s1">
<a href="#" class="s1">link</link>
</div>
<div class="s8">
<a href="#" class="s1">link</link>
<div class="s1">
<a href="#" class="s1">link</link>
</div>
</div>
<div class="ds44">
<a href="#" class="s1">link</link>
</div>
<span class="t">This is text</span>
<div class="thisOne">
<a href="#" class="s1">link</link>
</div>
</div>
通过单击
中除
及其子元素以外的任何元素。我该怎么做呢?处理点击.par
上的并选中e.target
比如说,
$(".par").on("click", function(e) {
if ($(e.target).closest(".thisOne").length) {
return;
}
…
});
将一个单击处理程序分配给.par
,然后将一个分配给。此处理程序可防止单击冒泡到.par
$('.par').click(aFn);
$('.thisOne').click(function(e) {
e.stopPropagation();
});
到目前为止你试过什么?您能与我们分享您可能在您的团队中尝试过的代码吗?但是中有一个元素。这个元素和那个元素单击事件@OMiD:它是子组合器–它意味着寻找。这一个是的直接后代。par
@OMiD:Um,保留任何有效的。我正在尝试一些我想选择的东西,你之前的答案正是我想要的for@OMiDL因为你没有选择不需要的元素,但这是没有意义的,因为我的旧答案不起作用…是吗?好吧,如果它对你有用,我想我可以把它换回来。我刚试过,但似乎没有…这不是我要找的!我要选择!不提升函数,感谢@minitech,它现在正在工作。aFn
将通过单击.par
或其子项调用,但除外。thisOne
及其子项。这不是你想要的吗?它正在工作,但是我的html有很多他们不应该选择的对象,如果我选择它们,我的应用程序工作得很慢!!谢谢你@JasonP
$('.par').click(aFn);
$('.thisOne').click(function(e) {
e.stopPropagation();
});