jQuery .find和.nextUntil在一起

时间:2016-02-18 17:24:02

标签: javascript jquery

我使用ajax获取外部文件的内容,然后从字符串中抓取一个元素并使用jQuery' s find()将其加载到我页面上的元素中。这很有效,但现在我需要从外部文件中获取一个元素和另一个元素之间的所有内容,我已经尝试使用.nextUntil(),但它并没有停在右边元素,并抓住文档的其余部分。所以问题是,我能做到这一点,还是有另一种方法可以做到这一点?

...
success: function(result) {
     html = $(result),
         comp = $(html).find("#comp1").nextUntil(".comp-close");
     $('.output-text').html(comp);
},
...

1 个答案:

答案 0 :(得分:1)

您的问题可能是“.comp-close”不是直接兄弟。

我在这里验证了这种行为:

<div id="1"></div>
<p>1</p>
<p>2</p>
<p>3</p>
<div>
  <p>4</p>
  <div id="2"></div>
  <p>5</p>
</div>
<div id="3"></div>
<p>6</p>

<p>=====</p>
<div id="4"></div>
// Clones until the end of the document
//var list = $('#1').nextUntil("#2");

// Clones until #3 since it is a direct sibling
var list = $('#1').nextUntil("#3");

console.log(list)

// Clone if you do not want to remove the originals from the DOM
$('#4').append(list.clone());

JSFiddle

另请注意,如果您不想修改DOM,则应使用clone()。

希望这有帮助!