2

HTML ページから文字列を取得しようとしています。この文字列は、ID のない div タグ内に存在し、絶えず変化する title プロパティを持っています。

次のようになります。

<div title = [this title changes depending on how the page is pulled up]>
EmailAddress abc@xyz
</div>

この混乱から 「 abc@xyz 」をつかみたい。

この HTML ドキュメントは常に変化しています。私が確実に知っている唯一のことは、取得したい文字列の前に常に「EmailAddress」が付くということです。

私はこれを3時間見つめていましたが、進歩はありませんでした。誰かが私を正しい方向に向けることができれば、とても感謝しています。

4

4 に答える 4

4

jQuery を使用しない場合:

var divElements = document.getElementsByTagName( 'div' );

for ( var i = 0; i < divElements.length; i++ ) {
    if ( divElements[i].innerText.match( 'EmailAddress' ) ) {
        // your div 
        var mail_id =  divElements[i].innerText.replace('EmailAddress ','');
    }
}

このフィドルを参照してください

于 2013-05-21T06:26:27.830 に答える
0

含まれている要素を ID で絞り込む方法がない場合は、本文の HTML を読み込んで、正規表現を使用してテキストを取得してみてください。

var html = document.getElementsByTagName('body')[0].innerHTML;
var result = html.match(/EmailAddress\s([^<]+)</i)[1];

これは非常に初歩的な正規表現ですが、最初はうまくいくはずです。

于 2013-05-21T06:26:26.200 に答える
0

これを試して

var x = document.querySelectorAll('div[title]'), email;
if(x.length){
    for(var i = 0; i < x.length; i++){
        var inner = x[i].textContent || x[i].innerText;
        if(/EmailAddress/.test(inner)){
            email = inner.substring(inner.indexOf('EmailAddress') + 13);
            email = email.replace(/\s.*$/, '')
            break;
        }
    }
}

デモ:フィドル

于 2013-05-21T06:38:08.997 に答える