1

我正在使用 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

但仍然无法弄清楚如何做我需要的。

提前致谢!

4

3 回答 3

5

我建议如下:

$('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 小提琴演示

虽然上述工作,用于其预期用途,并说明nextUntil()(这绝对是在这种情况下使用的方法),但我不确定我如何向您展示如何实现您的目标,因为您似乎已经离开了您的用例/要求相当模糊。

参考:

于 2013-08-26T22:02:11.340 回答
2

我相信 nextUntil 方法是您正在寻找的。

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

于 2013-08-26T22:02:52.130 回答
0

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

于 2013-08-26T22:04:38.543 回答