如何选择 DOM 中除一个元素之外的所有元素
How to select all the elements in the DOM except one element?
我有一个jQuery事件)在页面上的每个DOM元素上触发。现在这很好,但我需要一种方法从 DOM 选择中排除div(也有子div),以防止在它们上触发事件。我已经尝试了jQuery的unbind()
,直接在$('#myDiv')
上not()
和off()
,但事件仍在触发。
触发事件的代码:
$("*").each(function () {
// here are events bound to every DOM in the page
$(this).mouseover(mouseover).mouseout(mouseout).click(click);
});
我也尝试过
$("*:not(#myDiv)").each(function () {
// events
$(this).mouseover(mouseover).mouseout(mouseout).click(click);
});
并且仍然无法从 #myDiv 中删除事件。
该 HTML:
<div id="myDiv">
<div class="data">
<!-- -->
</div>
<div class="debug">
<!-- -->
</div>
<div class="form">
<!-- -->
</div>
</div>
进行完整 DOM 选择但排除 #myDiv 的最佳方法是什么,以便我能够使用 bind()
或 on()
进行绑定事件?
注意:我不想从 DOM 树中删除 #myDiv,而是将其从选择中排除。
你可以
试试这个
$(function(){
$('body > *').not('#myDiv')
.on('mouseover', function(){ //... })
.on('click', function(){ //... });
});
举个例子。
试试 .not()
$("*").not("#myDiv").each(function () {
$(this).mouseover(mouseover).mouseout(mouseout).click(click);
});
尝试以下操作:
$("*:not(#myDiv):not(#myDiv *)")
.mouseover(mouseover)
.mouseout(mouseout)
.click(click)
这不仅会排除 #myDiv,还会排除 #myDiv 的任何子元素(您似乎要这样做)。
如果还想排除子项,则需要明确执行此操作:
$("*:not(#myDiv):not(#myDiv *)")
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 指令的模板必须只有一个根元素:With restrict E&替换true
- HTML JavaScript,我如何能够通过给每个元素一个不同的Id来使用JavaScript使这个函数工作
- 如何创建一个独立的 DOM 元素?一个不从父母那里继承 css 等
- 如何给图像元素一个“;选择“;使用Raphael.js查看
- 如何显示隐藏的
- 元素一个接一个或全部同时
- 使用"span"创建一个自定义的基于web的文本编辑器;元素——一个坏主意
- 引导旋转木马传递元素一个接一个
- 给所有元素一个匹配数组内容的ID
- 我如何得到Json数组元素一个接一个的jquery上不同的id'
- 一次淡入附加元素一个
- 如何使用AngularJS检索外部网站的内容(一个元素一个元素)