在一大块文本中提取包含特定单词javascript的特定行

时间:2011-06-16 18:48:54

标签: javascript html regex tags

我目前有一大块字符串,实际上存储了一个html源代码。我现在要做的是读出我需要使用javascript的特定标签。任何人都可以帮助我,我是编程的新手,我不太清楚如何去做。


有问题的代码:

if (request.readyState == 4) {
    var html_text = request.responseText;
    var parent = document.createElement('div');
    parent.innerHTML = html_code;
    var metas = parent.getElementsByTagName('meta');
    var meta;
    for (var i = 0; i < metas.length; i++) {
        meta = metas[i];
        alert(meta.property);
        alert(meta.content);
    }
}

元内容有效,但只是返回的元属性未定义。

2 个答案:

答案 0 :(得分:1)

使用DOM(文档对象模型)API。 Mozilla Dev Networknée Mozilla开发中心)是一个全方位参考的绝佳起点。


  

我现在要做的是使用javascript读出我需要的特定标签。

var text = /* whatever string that contains HTML */;

首先你需要解析字符串:

var parent = document.createElement('div');
parent.innerHTML = text;

然后你可以搜索你正在寻找的任何元素。假设您正在寻找<table>元素。

var tables = parent.getElementsByTagName('table');

现在,您可以对找到的每个元素执行任何操作:

var table;
for (var i=0, len=tables.length; i<len; i++)
{
    table = tables[i];
    // do something with the element
}

相关API文档

答案 1 :(得分:0)

XML节点的属性不容易作为DOM对象属性使用。使用getAttribute

示例: http://jsfiddle.net/mendesjuan/6Pdmw/

var node = document.createElement('div');
node.innerHTML = "<meta property='prop1' content='cont1'>"+
                 "<meta property='prop2' content='cont2'>";
var metas = node.getElementsByTagName('meta');    
for (var i = 0; i < metas.length; i++) {
    var meta = metas[i];
    alert(meta.getAttribute("property"));
    alert(meta.getAttribute("content"));
}