HTMLの見出しと強調の要素の数を数える
機会があったので、実行すると alert() で HTML の各要素の (ただしDOMツリー内の) 数を表示する Bookmarklet を作って某所に投稿してみたが、投稿した後に、大文字の要素名を getElementsByTagName() に渡すと、大文字小文字を区別する上に要素名を小文字で書く XHTMLではうまくいかないっぽいことに気づいたので、toLowerCase() を使うように手元では修正したのだが、某所に再投稿するのは気が引けるし、そもそも公開されない懸念があるので、ここに公開する。
javascript:(function() { var b = document.body; var f = function(arg) { return b.getElementsByTagName(arg); }; var types = ['*', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'EM', 'STRONG']; var ar = []; for(var i = 0, l, len = types.length, t; i < len; i++) { t = types[i]; l = f(t.toLowerCase()).length; ar.push(t, ' 要素 : ', l, '個 '); ar.push('\( 約 ', Math.round(l/(ar[2]?ar[2]:l)*10000)/100, ' \% \)\n'); } ar[0] = 'BODYの子供'; ar[2]--; alert(ar.join('')); })();