在 jQuery 中向后匹配第一次出现的元素

Gio*_*gio 1 jquery dom jquery-selectors

我有一个包含一些表格的页面。在提交时,我想匹配向后搜索表单的元素(即段落)的第一次出现。例如

  • #firstform提交时,我想匹配 #secondparagraph
  • #secondform提交时,我想匹配#thirdparagraph

<div>
  <p id="firstparagraph">Some other paragraph</p>
  <ul>
    <li>First element</li>
    <li>Second element</li>
  </ul>
  <p id="secondparagraph">Some other paragraph</p>
</div>

<form id="firstform">
  <input type="submit" value="Submit1" />
</form>

<p id="thirdparagraph">Some other paragraph</p>

<form id="secondform">
  <input type="submit" value="Submit2" />
</form>
Run Code Online (Sandbox Code Playgroud)

是否可以创建一个向后搜索并在第一次匹配时停止的 jQuery 函数?

Den*_*ret 5

你可以这样做 :

var p = $(this).parents().addBack().prevAll().find('p').addBack('p').last();
Run Code Online (Sandbox Code Playgroud)

示范

这个想法是从所有父母以前的兄弟姐妹中收集一个集合,并在这个(大)集合中搜索最后一段。