Javascript 如何在jQuery中从父级选择所有子级(任何级别)?
我必须。从父节点取消绑定所有元素 如何从父级中选择任何级别的所有子级 尝试:Javascript 如何在jQuery中从父级选择所有子级(任何级别)?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我必须。从父节点取消绑定所有元素 如何从父级中选择任何级别的所有子级 尝试: $('#google_translate_element *').unbind('click'); 但它只适用于第一个儿童级别 有一个测试用例用于查找多个级别的子级 .find和.children方法类似,只是 后者只沿DOM树向下移动一层 您需要查找中的“*”: 与其他树遍历方法不同,选择器 调用.find时需要表达式。如果我们需要取回 所有的子元素,我们都可以传入通用选择器 “*”来实现这一点 我想你可以做到:
$('#google_translate_element *').unbind('click');
但它只适用于第一个儿童级别
有一个测试用例用于查找多个级别的子级
.find和.children方法类似,只是
后者只沿DOM树向下移动一层
您需要查找中的“*”:
与其他树遍历方法不同,选择器
调用.find时需要表达式。如果我们需要取回
所有的子元素,我们都可以传入通用选择器
“*”来实现这一点
我想你可以做到:
$('#google_translate_element').find('*').each(function(){
$(this).unbind('click');
});
但是它会导致大量开销似乎原始测试用例是错误的 我可以确认选择器my_parent_元素*与unbind一起工作 让我们以以下html为例:
<div id="#my_parent_element">
<div class="div1">
<div class="div2">hello</div>
<div class="div3">my</div>
</div>
<div class="div4">name</div>
<div class="div5">
<div class="div6">is</div>
<div class="div7">
<div class="div8">marco</div>
<div class="div9">(try and click on any word)!</div>
</div>
</div>
</div>
<button class="unbind">Now, click me and try again</button>
你可以在这里试试:你有一个测试用例来演示这一点吗?你不能只做$'google\u translate\u element'。找到'*',取消绑定'click';我现在正在使用这个,但是我需要担心性能吗?是的,当然。你应该总是担心表现。现代浏览器的执行速度相当快,但如果您在这个特定代码段中遇到问题,请尝试将父元素保持为小元素,而不是太多子元素,或者将子元素分组为较小的集合。
<div id="#my_parent_element">
<div class="div1">
<div class="div2">hello</div>
<div class="div3">my</div>
</div>
<div class="div4">name</div>
<div class="div5">
<div class="div6">is</div>
<div class="div7">
<div class="div8">marco</div>
<div class="div9">(try and click on any word)!</div>
</div>
</div>
</div>
<button class="unbind">Now, click me and try again</button>
$('.div1,.div2,.div3,.div4,.div5,.div6,.div7,.div8,.div9').click(function() {
alert('hi!');
})
$('button.unbind').click(function() {
$('#my_parent_element *').unbind('click');
})