jQuery prevAll以向后排序显示文本

时间:2010-06-06 22:29:09

标签: jquery html find

我正在尝试使用jQuery在我的内容中的第一个h2标记之前获取所有段落。这是我正在使用的代码:

$(".content").find("h2:first").prevAll().text()

这是抓取内容,虽然它以向后的顺序显示它。示例内容:

<div class="content">
  <p>paragraph 1</p>
  <p>paragraph 2</p>
  <p>paragraph 3</p>
  <h2>First h2 tag</h2>
  <p>paragraph 4</p>
  <p>paragraph 5</p>
  <p>paragraph 6</p>
  <h2>Second h2 tag</h2>
</div>

以上代码正在输出:

<p>paragraph 3</p>
<p>paragraph 2</p>
<p>paragraph 1</p>

有没有办法扭转这种情况,所以它的顺序是正确的?我尝试使用nextAll使用不同的代码,但它似乎抓住了我的所有内容,或者根本不工作lol

2 个答案:

答案 0 :(得分:8)

Dunno,如果以下将起作用:

Array.prototype.reverse.call($(".content").find("h2:first").prevAll()); 

答案 1 :(得分:2)

我们可以这样做:

$(  $(".content h2:first").prevAll().get().reverse()  ).text();

注意: [].reverse()是一个javascript数组(此处带有DOM元素),您需要将其与$( ... )包装成jQuery数组,如上所述;例如:$( [].reverse() )