2012-03-21 1 views
36

で使用されるDOM要素の数を取得する方法:私は簡単にDOMの数は、Webページで使用elemetns得ることができるのjQueryを使用してWebページ

$('*').length; 

しかし、すべてのWebサイトは、jQueryのを使用しています。

私の質問は、純粋なjavascriptとjsコンソールを使用してWebページで使用されるDOM要素の数を取得する方法です。

+0

IEの問題を無視できることを意味します。 – zzzzBov

+0

@zzzzBov - その前提につながるものは何ですか?とにかくIEの問題がこの状況で重要なのはなぜですか? – Quentin

+0

@クエンティン、私の答えの2番目の部分を参照してください。 IEの古いバージョンは 'querySelectorAll'をサポートしていません。 – zzzzBov

答えて

56

「すべてのノード」(これにはテキストノードなどが含まれ、jQueryの例ではスキップされます)ではなく「HTMLElementNodes」となります。

document.getElementsByTagName('*').length 

これでもDOMを使用する必要があります。 Pure JavaScriptは、テキストの文字列以外のHTMLドキュメントと対話できません。

+0

nice。私はちょうどそれに基づいてブックマークレットを作成しました:https://github.com/lingtalfi/count-dom-nodes-bookmarklet – ling

14

それは実際にはかなり簡単です:

document.getElementsByTagName('*').length 

あなたは古いブラウザを無視することができれば、あなたもでjQueryのような構文の一部を保存することができます: "あなたは意味と仮定

var $; 
$ = document.querySelectorAll.bind(document); 
$('*').length; 
+1

'querySelectorAll'は' this'を 'document'にする必要があります。 'document'オブジェクトのコンテキストなしで正常に呼び出すことができないので、コードは失敗します(少なくともChromeで)。 – Quentin

+2

whoops、 'bind'を追加するのを忘れました。 – zzzzBov

関連する問題