bz0のにっき

quick and dirty prototype

文字列のHTMLからタグ名を全て抽出

文字列のHTMLからタグ名を全て抽出するJavascriptです。
再帰関数を利用しているので階層が深くなってもすべて取得することが出来ます。

再帰関数とは
再帰関数を学んでワンランク上のJavaScriptエンジニアになろう! - Qiita

・$.parseHTML 文字列をHTML要素に変換します
jQuery リファレンス:jQuery.parseXML

var taglist = {
  tags: [],
  h: function(html){
    Object.keys(html).forEach(function (key) {
      if (html[key].tagName){
        taglist.tags.push(html[key].tagName);
	if (html[key].childNodes.length>0){
            taglist.h(html[key].childNodes);
        }
      }
    });
  }
};
var str = "<div>aa<b>aaa</b>aa</div><table><thead><tr><td>aaaa<td><td>bbbb<td></tr></thead><tbody><tr><td>cccc</td><td>ddddd</td></tr></tbody></table>";
var html = $.parseHTML(str);
taglist.h(html);
console.log(taglist.tags);

「taglist.tags」に配列でタグ名が入ります。

Array[13]
0:"DIV"
1:"B"
2:"TABLE"
3:"THEAD"
4:"TR"
5:"TD"
6:"TD"
7:"TD"
8:"TD"
9:"TBODY"
10:"TR"
11:"TD"
12:"TD"