jQuery prevAll以向后排序显示文本

Sou*_*aby 5 html jquery find

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

$(".content").find("h2:first").prevAll().text()
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

上面的代码正在输出:

<p>paragraph 3</p>
<p>paragraph 2</p>
<p>paragraph 1</p>
Run Code Online (Sandbox Code Playgroud)

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

aza*_*oth 8

Dunno如果以下将工作:

Array.prototype.reverse.call($(".content").find("h2:first").prevAll()); 
Run Code Online (Sandbox Code Playgroud)


Rez*_*mun 6

我们可以这样做:

$(  $(".content h2:first").prevAll().get().reverse()  ).text();
Run Code Online (Sandbox Code Playgroud)

注意: [].reverse()是一个 javascript 数组(此处包含 DOM 元素),您需要将其设为 jQuery 数组,$( ... )如上面所示;例如:$( [].reverse() )