簡體   English   中英

JQUERY:在復雜結構中查找下一個元素的困惑

[英]JQUERY : Confusion to find next element in a complex structure

在使下一個元素進入復雜結構時,我感到非常困惑。

結構復雜

<p>before data</p>

<div>
   <p>some data <span id="getnext"></span></p>
</div>    

<div>
    <p>some data <span><ins>inserted</ins></span></p>
</div>    

<div>
   <div>
      <p>some data <span><del>deleted</del></span></p>
   </div>
</div>   

<div>
   <div>
       <ol>
             <li>Some changes made<span data-change="get">in this place</span></li>
       </ol>    
   </div>
</div>

這是我機器上的復雜結構。

我想獲取所有具有insdelspan[data-change="get"]下一個元素

現在,我在id "getnext"

我嘗試通過以下方式做到這一點。

var arr_ = $('#getnext').next('ins,del,span[data-change="get"]');

但是,這不是很好,我現在該怎么辦?

有任何想法或建議。

最大結構變體:

<p>some data <span id="getnext"></span>extra data<ins>some data</ins></p>

<p>deleted<span><del>some data</del></span> data</p>

<ol>
  <li><ins>list insert</li>

  <ul>
     <li><del>deleted</del></li> 
  </ul>

</ol>

<div>
  <p><span data-change="get">changed data</span>
</div>

您需要先轉到closest (父級) div

$('#getnext').closest( "div" );

然后檢查next 具有insdel等的div元素

$('#getnext').closest( "div" ).nextAll( "div:has(ins,del,span[data-change='get'])" );

要么

$('#getnext').closest( "p" ).nextAll( "p").has("ins,del,span[data-change='get']" ) ;

演示版

 var output = $('#getnext').closest("div").nextAll("div:has(ins,del,span[data-change='get'])"); console.log(output.length); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p>before data</p> <div> <p>some data <span id="getnext"></span></p> </div> <div> <p>some data <span><ins>inserted</ins></span></p> </div> <div> <div> <p>some data <span><del>deleted</del></span></p> </div> </div> <div> <div> <ol> <li>Some changes made<span data-change="get">in this place</span></li> </ol> </div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM