按标题使用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