检查元素是否在jQuery中的另一个元素之前或之后

让我们假设我有这个标记
<h3 id="first">First</h3>
<p>Hi</p>
<p>Hello</p>
<h3 id="second">Second</h3>
<p>Bye</p>
<p>Goodbye</p>

如何以编程方式检查一个元素,如ps之一是第一个h3之后,第二个h3之前,用jQuery?

我试图做这样的事情:

$(p).each(function(){
   if($(this).isAfter("#first") && $(this).isBefore("#second")) {
     // do stuff
   }
});

解决方法

要查看元素是否在另一个元素之后,您可以使用 prev()prevAll()获取一个元素,并查看它是否匹配。

要查看元素是否在另一个元素之前,您可以使用next()nextAll()获取一个元素,并查看其是否匹配。

$.fn.isAfter = function(sel){
  return this.prevAll(sel).length !== 0;
}
$.fn.isBefore= function(sel){
  return this.nextAll(sel).length !== 0;
}

演示:http://jsfiddle.net/bk4k7/

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...