如何选择两个h2之间的所有元素

时间:2013-08-26 21:56:54

标签: javascript jquery html

我正在使用jQuery。我有以下html片段:

   <h1>Main Title</h1>
    <h2>One header</h2>
        <p>some text</p>
        <p>more text</p>
        <ul><li>a list</li></ul>
    <h2>Another header</h2>
        <a href="######">one link</a>
        <h3>ddd</h3>
        <p>eee</p>

    <h2>Header 3<h2>
    <p>This is a Paragraph</p>

我需要获取每个h2元素之间的内容,以便执行以下操作:

First Section text

some text
more text

Second section text

one link
ddd
eee

Third section text
This is a Paragraph

我已阅读此资源: http://www.tutorialspoint.com/jquery/jquery-selectors.htm

但仍然无法想象如何做我需要的事情。

提前致谢!

3 个答案:

答案 0 :(得分:3)

我建议如下:

$('h2').each(function(){
    var self = $(this),
        // gets everything between the $(this) and the next 'h2' element:
        contents = self.nextUntil('h2'),
        /* creates a new div with which to wrap,
           and inserts after the current $(this): */
        newWrap = $('<div />').insertAfter(self);
    // appends the contents to the new div element:
    newWrap.append(contents);
});

JS Fiddle demo

虽然以上是有效的,并且用于预期用途,并说明nextUntil()(这绝对是在这种情况下使用的方法),但我不确定如何向您展示如何实现您的目标,因为您似乎让你的用例/要求变得模糊不清。

参考文献:

答案 1 :(得分:2)

我相信nextUntil方法正是您所需要的。

http://api.jquery.com/nextUntil/

答案 2 :(得分:0)

一个好的解决方案是将您要检索的内容放在带有id的<div>标记中,并使用jQuery检索其内容,如下所示:$('#divid').text()