Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中从父级选择所有子级(任何级别)?_Javascript_Jquery_Html_Dom - Fatal编程技术网

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');
})