社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

在jquery中通过类选择子元素时,如何将每个直接子元素视为不同的元素?

A J • 5 年前 • 1404 次点击  

我有两个或两个以上的街区在同一层。在这些块中,我有一些公共元素,但是我想对每个子元素进行不同的处理。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
      $("button").click(function(){
       let row_len = $(".parent-row>.row").length;
        $(".parent-row>.row").each(function(index, element){
          if(index < row_len) {
             element.remove();
          }
        });
      });
    });
    </script>

    <div class="parent-row">
       <div class="row">
         A
       </div>
     </div>

    <div class="parent-row">
       <div class="row">
         A
       </div>
      <div class="row">
         A
       </div> 
     </div>

    <div class="parent-row">
       <div class="row">
         A
       </div>
      <div class="row">
         A
       </div>
      <div class="row">
         A
       </div>  
     </div>
<button type="button">Reset</button>

实际上,我想删除.row元素的所有子元素,除了一个块。

我想回到:

<div class="parent-row">
   <div class="row">
     A
   </div>
 </div>

<div class="parent-row">
   <div class="row">
     A
   </div>
 </div>

<div class="parent-row">
   <div class="row">
     A
   </div>
 </div>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40782
 
1404 次点击  
文章 [ 5 ]  |  最新文章 5 年前
gaetanoM
Reply   •   1 楼
gaetanoM    6 年前

实际上我想删除除第一个元素之外的所有元素。

因此,您可以选择除第一个元素之外的所有元素:

$(".parent-row>.row:not(:first)")

$(document).ready(function () {
    $("button").on('click', function (e) {
      $(".parent-row>.row:not(:first)").remove();
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent-row">
    <div class="row">
        A
    </div>
</div>

<div class="parent-row">
    <div class="row">
        B
    </div>
</div>

<div class="parent-row">
    <div class="row">
        C
    </div>
</div>
<button type="button">Reset</button>

实际上,我想删除.row元素的所有子元素,除了一个块。

在这种情况下,您可以组合 :contains() :not() 选择器:

$(".parent-row>.row:not(:contains(A))")

$(document).ready(function () {
    $("button").on('click', function (e) {
        $(".parent-row>.row:not(:contains(A))").remove();
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div class="parent-row">
    <div class="row">
        A
    </div>
</div>

<div class="parent-row">
    <div class="row">
        A
    </div>
    <div class="row">
        B
    </div>
</div>

<div class="parent-row">
    <div class="row">
        A
    </div>
    <div class="row">
        B
    </div>
    <div class="row">
        C
    </div>
</div>
<button type="button">Reset</button>

如果,相反,你正在寻找你可能 .filter() :

$(".parent-row>.row").filter((idx, ele) => ele.textContent.trim() != 'A').remove();

$(document).ready(function () {
    $("button").on('click', function (e) {
        $(".parent-row>.row").filter((idx, ele) => ele.textContent.trim() != 'A').remove();
    });
});
<script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js”></script>


<div class=“父行”>
<div class=“row”>
一
&L/DIV & GT;
&L/DIV & GT;

<div class=“父行”>
<div class=“row”>
一
&L/DIV & GT;
<div class=“row”>
乙
&L/DIV & GT;
&L/DIV & GT;

<div class=“父行”>
<div class=“row”>
一
&L/DIV & GT;
<div class=“row”>
乙
&L/DIV & GT;
<div class=“row”>
C
&L/DIV & GT;
&L/DIV & GT;
<button type=“button”>重置</按钮>
Sushil
Reply   •   2 楼
Sushil    6 年前

希望这是你需要的

$("button").click(function(){
        $(".parent-row>.row:not(:first)").remove();
});

$("button").click(function(){
 $(".parent-row>.row").each(function(index, element){
  if(index>0)
   element.remove();
 })
});
jags
Reply   •   3 楼
jags    6 年前
$(document).ready(function(){
    $("button").click(function(){
        let row_len = $(".parent-row>.row").length;
        $(".parent-row>.row").each(function(index, element){
        if(( index < row_len ) && ( index != 0)) {
                element.remove();
            }
        });
    });
});
Renzo Calla
Reply   •   4 楼
Renzo Calla    6 年前

要删除第一行,您可以将行的内容与这样的“a”进行比较….

$(document).ready(function(){
      $("button").click(function(){
       let row_len = $(".parent-row>.row").length;
        $(".parent-row>.row").each(function(index, element){
          if($(element).html().trim() == 'A') {
             element.remove();
          }
        });
      });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

   <div class="parent-row">
       <div class="row">
         A
       </div>
     </div>

    <div class="parent-row">
       <div class="row">
         A
       </div>
      <div class="row">
         B
       </div> 
     </div>

    <div class="parent-row">
       <div class="row">
         A
       </div>
      <div class="row">
         B
       </div>
      <div class="row">
         C
       </div>  
     </div>
<button type="button">Reset</button>
Shikhar Jaiswal
Reply   •   5 楼
Shikhar Jaiswal    6 年前
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$("button").click(function(){
$(".parent-row .row:not(:first-child)").remove();
<button type="button">fire</button>
<div class="parent-row">
  <div class="row">
    A1
  </div>
</div>

<div class="parent-row">
  <div class="row">
    A1
  </div>
  <div class="row">
    A2
  </div> 
</div>

<div class="parent-row">
  <div class="row">
    A1
  </div>
  <div class="row">
    A2
  </div>
  <div class="row">
    A3
  </div>  
</div>