2016-09-23 14 views
1

現在のページのHTMLを解析し、特定のdivクラスを除外し、その内容をファイルに書き込むか、ページ以外のものをすべて削除するスクリプトを作成します。現在のページのHTMLを解析する

私はそのページでTampermonkeyスクリプトを実行することをお勧めします。私はhttp://userscripts-mirror.org/を見ましたが、このようなスクリプトは見つかりませんでした。

クロムで実行できるjavascript htmlパーサーはありますか?

このようなことが起こる可能性がありますか?

var divClasses = parseCurrentPage("div class x"); 
// then do something on divClasses and then show only them 
+2

を使用することができますdiv要素の一つの親をつかむために必要がある場合は、親html要素 $('selector-to-grap-div\'s-parent-html').append(myDiv); に追加したいdiv要素と'append'機能オフサイトのリソースは明示的にオフトピックです。 –

+0

「現在のページのHTMLを解析する」とはどういう意味ですか?あなたは '.querySelectorAll()'や '.getElementsByClassName()'を使うことができるはずです – guest271314

+0

完全なページソースを引っ張り、regexを多分使ってみてください。 – Brydenr

答えて

1

Jqueryはこれ以上すべてを行うことができます。あなたが唯一の特定のdiv要素をつかむしたい場合は、簡単に使用してこれを行うことができます var divClasses = $('div'); :あなたはすべての「DIV」要素セレクタはこのようなものになるだろうjqueryのシンプルなグラブを含めたら、私はそれにhttps://learn.jquery.com/

を読んで推薦しますセレクタにクラス、ID、親/階層レベルの制限を追加することによりセレクタを選択します。詳細はhttps://api.jquery.com/category/selectors/

div要素でやりたいことをやった後で、 jqueryの 'append'関数を使用してそれらを表示します。

シンプルなコールあなたは、あなたが求めてjQueryの'parent'機能

+0

jqueryを使って 'var divClasses'の内容を扱うことができますか? 'removeif(" divは特定の単語を持っています ")のようなものです。 – shinzou

+0

最も確実です! divのテキストに特定の単語がある場合は、単純にjqueryの 'text'関数(api.jquery.com/text)を使用して、javascript str.indexOfを使用して、探している単語がdivのテキストに含まれています。そうであれば、jqueryのremove api.jquery.com/remove var myDivsText = myDiv.text();を使用して削除できます。 if(myDivsText.indexOf( "wordLookingFor")> = 0){myDiv.remove(); } – splay

+0

Chromeのコンソールで 'var divClasses = $( 'div');'を実行しようとすると、 'undefined'を返すか、' '%s"の要素を取得しようとしましたが、私はここにいくつかの方法でそれを含めるようにしました:http://stackoverflow.com/questions/7474354/include-jquery-in-the-javascript-console多分私は別の質問を開きます... – shinzou

0

は、私はあなただけ<body>のコンテンツを取得し、jQueryを使ってクエリを実行する... jQueryを使って、簡単に作ることができると信じています。

+0

jqueryですべてのdivを削除できますか? – shinzou

+0

@kuhakuあなたは$( "div")を使ってすべてのものを得ることができます。そしてforEachを使っていくつかをチェックして削除します。 –

1

特定のdivクラスをフィルタリング

あなたが見つかりました。要素のライブHTMLCollectionあるdocument.getElementsByClassName()

var elements = document.getElementsByClassName(names); // or: 
var elements = rootElement.getElementsByClassName(names); 
  • 要素を使用することができます。
  • は一致するクラス名のリストを表す文字列です。クラス名は空白で区切られます。
  • getElementsByClassNameは、ドキュメント上だけでなく、どの要素でも呼び出すことができます。呼び出された要素は、検索のルート として使用されます。
関連する問題