2013-05-14 12 views
5

文字列「Done successfuly」がウェブページのどこかに表示されているとします。この文字列がJavaScriptのみを使用しているかどうかを知る方法はありますか?おかげさまで Javascript:Webページにテキストが存在するかどうかを確認する方法

+0

を使用して... – Neal

+3

はい、ありますそれはあなたがしようとしていることに対して、おそらく最良の解決策ではありません。あなたの完全な問題とこれまで解決しようとしてきたことを説明することは、より有用かもしれません。 –

+3

このサイトの目的は、書いたコードを修正するのに役立ちます。最初の部分は、コードを書く必要があります。私たちには方法があります。 – Cam

答えて

24

詳細が参考になります。より良い方法があるかもしれません。あなたはIDまたはクラス名を知っているか、そうでない場合は、直接テキスト(例えばh1#someHeading span ...)含まれている要素を選択することができる場合、あなたはおそらくそれを行う必要があります

if (
    (
    document.documentElement.textContent || document.documentElement.innerText 
).indexOf('Done successfuly') > -1 
) { 
    // Do something... 
} 

:しかし、これはあなたが提供した最高の与えられたどのような情報であり、それはより性能が高く、一般的にはよりクリーンなアプローチになります。

EDIT注目すべき点:このアプローチでは、SCRIPTタグとSTYLEタグ内のテキストも選択されますが、これはおそらく必要ではありません。 textContentinnerTextには、ブラウザ間でさまざまな違いがあります。 See this for more info

+0

はうまく動作します、ありがとう:) – Sam

+0

@ user2348365これがあなたの質問に答えるなら、それを示すために左のチェックマークを使います。回答者に感謝し、サイトをきれいに保ちます。 – ahsteele

+0

素敵なツイッター移転! :)) – DrStrangeLove

3

これを行うための最も簡単な方法は、jQueryのを使用しているセレクタが含まれています

if($("*:contains('Hello World')").length > 0) 
    console.log('yeah baby'); 

この方法はまた、あなたのテキストのコンテナ要素を提供します。

+0

あなたの助けをありがとう – Sam

+5

FWIW、この特定のセレクタは、Sizzle(ネイティブでサポートされているセレクタではない)を使用し、ページ上のすべての要素を選択し、テキストをチェックするたびに*すべての要素をループします。これは正確には効率的ではありません。 – James

-1

するTry .search()このような 何か:innerHTMLプロパティの

document.body.innerHTML.search("Done successfully!"); 

またはその代わりに、何を求めている、または何をしようとしたわからないのTextContent

+0

document.bodyには "match"というプロパティはありません。代わりにinnerText(またはtextContent)を使用してください。 –

+0

'body'は' match'という名前の関数を含んでいません。正規表現で使われている 'String.match'を考えていますか?もしそうなら、 'body'は確かに文字列ではありません。 –

+1

申し訳ありませんが、自分のミスを見つけて別のソリューションに編集しました – Milchkanne

関連する問題