Javascript搜索标签并获取它的innerHTML

Dav*_* R. 5 javascript tags search innerhtml match

这可能是非常简单的事情,但我只是在学习.

有一个页面上有3个blockquote标签,我需要得到包含某个字符串的innerHTML.我不知道如何搜索/匹配字符串并获取包含匹配结果的标记的innerHTML.

任何帮助,将不胜感激!

wat*_*ain 9

var searchString = 'The stuff in innerHTML';
var elements = document.getElementsByTagName('blockquote')
for (var i = 0; i < elements.length; i++) {
     if (elements[i].innerHTML.indexOf(searchString) !== -1) {
         alert('Match');
         break;
     }
}
Run Code Online (Sandbox Code Playgroud)

:)

顺便说一句,如果你使用Prorotype JS(比jQuery btw好得多)会有一个更好的方法:

var el = $$('blockquote').find(function(el) {
    return el.innerHTML.indexOf('The string you are looking for.') !== -1;
});
Run Code Online (Sandbox Code Playgroud)

您当然也可以使用正则表达式来查找字符串,这可能更有用(使用el.match()).

  • "这比jQuery btw要好得多"......不要说它是一个事实 - 它不是一个. (3认同)

Kev*_*ner 6

如果您需要搜索<blockquote>页面上的每个内容,请尝试以下操作:

function findBlockquoteContainingHtml(matchString) {
    var blockquoteElements = document.getElementsByTagName('BLOCKQUOTE');
    var i;
    for (i = 0; i < blockquoteElements.length; i++) {
        if (blockquoteElements[i].innerHTML.indexOf(matchString) >= 0) {
            return blockquoteElements[i].innerHTML;
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)