如何使用Javascript从HTML文档中获取字符串

时间:2013-05-21 06:20:42

标签: javascript html

我正在尝试从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 个答案:

答案 0 :(得分: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 ','');
    }
}

See this fiddle

答案 1 :(得分:0)

如果您没有办法通过ID缩小包含元素,那么您可以尝试读取正文HTML并使用正则表达式来检索文本:

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

这是一个非常基本的正则表达式,但应该从头开始。

答案 2 :(得分: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;
        }
    }
}

演示:Fiddle

答案 3 :(得分:-1)

$('div').each(function(){
    var divText=$(this).text();
    var ok=divText.contains('EmailAddress')
    if(ok){
      alert(divText);
    }
});