按标题使用Javascript Bookmarklet到块页面内容(第2部分)

我有一些@pimvdb 在这里帮助我的javascript,我想知道它是否可以调整,以便在下一个更高的div组合较小的标题div

换句话说,从这个HTML开始:

 

Some paragraph

Heading 1

Some paragraph

Some paragraph

Heading 2

Some paragraph

Some paragraph

Heading 3

Some paragraph

Some paragraph

Heading 1

Some paragraph

Some paragraph

Heading 2

Some paragraph

Some paragraph

Heading 3

Some paragraph

Some paragraph

...

…然后使用javascript(通过书签,因为它必须在客户端完成)最终得到这个:

 

Heading 1

paragraph

Heading 2

paragraph

Heading 3

paragraph

Heading 3

paragraph

Heading 1

paragraph

Heading 2

paragraph

Heading 3

paragraph

如何只为每个不同的头分配类而不是使用:header,单独使用每个元素类型并从最高到最低工作。

  function a() { $('h3').each(function() { $(this) .add($(this).nextUntil( $("h3")) ).wrapAll( $("
") ); }); $('h2').each(function() { $(this) .add($(this).nextUntil( $("h2")) ).wrapAll( $("
") ); }); $('h1').each(function() { $(this) .add($(this).nextUntil( $("h1")) ).wrapAll( $("
") ); }); };

改变了我对第一部分的回答:

 var parent = document.body, i; var tmpArray = []; for (i=0; i 0) { currElem = document.createElement("div"); currElem.className = classNames[which]; currElem.appendChild (elem); headerArray[which] = currElem; if (which > 1) headerArray[which-1].appendChild(currElem); else newArray.push(currElem); } else { if (currElem) currElem.appendChild (elem); else newArray.push(elem); } } parent.innerHTML = ''; for (i=0; i