Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 选择具有给定类的子级_Javascript_Jquery_Html - Fatal编程技术网

Javascript 选择具有给定类的子级

Javascript 选择具有给定类的子级,javascript,jquery,html,Javascript,Jquery,Html,我有三个类似的部分。我想选择一个具有给定类的元素,但只在我单击的元素的范围内 <div class="one"> <div class="some"> <div class="mine"></div> </div> <div class="inner1"> </div> <div class="inner2"> <div class="target"><

我有三个类似的部分。我想选择一个具有给定类的元素,但只在我单击的元素的范围内

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
我当前的代码选择具有相同类的所有元素

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
如果我在类
mine
上添加了一个事件处理程序,并且需要在
target
类上执行一些操作,则仅针对我单击的类
one
范围内的inner2, 那我该怎么做呢

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
HTML:

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>

使用下面的代码。用于搜索子元素

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
$('.one').on('click',function(){
   var inner2Obj = $(this).find('div.inner2');
   inner2Obj.slideToggle(function(){
      // your code
   });
   console.log(inner2Obj) // this will log inner2 object within clicked one DIV
});

试试这个:您可以利用获取
inner2
元素并对其执行操作

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
$(".mine" ).click(function() {  
   $(this).siblings('.inner2').slideToggle(function(){
      if(temp==0){
        $(this).closest(".proElement").addClass('darkBg');
        temp=1;
     }
    else{
       $(this).closest(".proElement").removeClass('darkBg');
       temp=0;
      }
   });// end of slideToggle
}); // 
您还可以在此处使用.sibbins():

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>

使用同级

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>
$(".mine" ).click(function() {  
$(this).siblings('.inner2').slideToggle(function(){
if(temp==0){
    $(this).closest(".proElement").addClass('darkBg');
    temp=1;
}
else{
    $(this).closest(".proElement").removeClass('darkBg');
    temp=0;
}
});
});

<div class="one">
 <div class="some">
      <div class="mine"></div>
  </div>
 <div class="inner1">
 </div>
 <div class="inner2">
   <div class="target"></div>
 </div>
</div>

<div class="one">
  <div class="some">
      <div class="mine"></div>
  </div>
  <div class="inner1">
  </div>
  <div class="inner2">
     <div class="target"></div>
  </div>
  </div>

JS中使用的选择器在共享HTML中不存在。请发布相关标记。我没有看到任何单击事件绑定到类1。。你想重温你的问题吗?对不起,任务有变化,标记有变化,检查一下