使用jQuery获取范围之间的兄弟

时间:2015-01-27 11:53:26

标签: javascript jquery html css

jquery可以使用class="sortable"插入所有元素,使用class="header"的元素插入带有class="page-break"的元素,使用id="page-0"插入带有$(".page").each(function(index) { $(this).prepend($(this).nextAll('.page')); }); 的元素,依此类推每个新页面?

我尝试过:

nextAll()

问题是id="page-1"使用page-0检索元素,但我无法获取page-1$(this).siblings(".sortable")之间的所有上述项目。

功能 class="sortable" ....没有用于我,因为这会使所有page-2元素都在page-3<div id="page-0" class="page"> <div class="header herader-small-pdf"></div> <div class="sortable-0"></div> <div class="sortable-1"></div> <div class="sortable-2"></div> ..... <div class="page-break"></div> <div id="page-1" class="page"> <div class="header herader-small-pdf"></div> <div class="sortable-x"></div> ..... <div class="page-break"></div> </div> 之间等等。

这是目标:

{{1}}

这可能吗?current state

2 个答案:

答案 0 :(得分:3)

.nextUntil()

$('.page').each(function(index) {
   $(this).prepend($(this).nextUntil('.page'));
});

答案 1 :(得分:1)

试试这个:迭代所有page元素和append()每个没有page类的下一个元素。

$(function(){
  $(".page").each(function() {
   var exitLoop = false;
   var nextElement = $(this).next();
   while(!exitLoop)
   {
      $(this).append(nextElement);
      nextElement = $(this).next();
      //check if next element has page class, then exit the loop
       if($(nextElement).length > 0 )
         exitLoop =  $(nextElement).hasClass('page');
       else
         exitLoop = true;
   }
  });
});

<强> JSFiddle Demo