Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript解析内部HTML_Javascript_Parsing_Innerhtml - Fatal编程技术网

Javascript解析内部HTML

Javascript解析内部HTML,javascript,parsing,innerhtml,Javascript,Parsing,Innerhtml,我有一个HTML页面,其中充满了用逗号分隔的数据,每一行都以(br/)标记结尾。在Javascript中,我可以通过请求包含数据的元素的innerHTML从DOM中获得这一点 我的问题是如何解析innerHTML,从逗号之间取出数据,并在下一行点击(br/)标记时开始? 你可以忽略其他的,因为这是我上面的问题 当我解析每一行时,我将启动一个新对象并将数据放入其中。我只是不知道如何处理innerHTML 我确实通过我找到的CSVtoarray函数将数据放在一起,但最终得到的是一个由一个大数组组成的

我有一个HTML页面,其中充满了用逗号分隔的数据,每一行都以(br/)标记结尾。在Javascript中,我可以通过请求包含数据的元素的innerHTML从DOM中获得这一点

我的问题是如何解析innerHTML,从逗号之间取出数据,并在下一行点击(br/)标记时开始?

你可以忽略其他的,因为这是我上面的问题

当我解析每一行时,我将启动一个新对象并将数据放入其中。我只是不知道如何处理innerHTML

我确实通过我找到的CSVtoarray函数将数据放在一起,但最终得到的是一个由一个大数组组成的数组,而不是每行的数组。我可以通过这个数组一路工作,从数据创建对象,但是当我可以直接将数据解析为对象时,将innerHTML转换为单个数组似乎是不必要的步骤


数据通过AJAX放在那里。我可以更改数据的格式。正如我所说,我在行的末尾用逗号和(br/)标记分隔数据。我不知道这是否愚蠢。

因此,您想解析一个文件,其中新行用

表示,而不是
\n
?只需在CSV解析器中使用该分隔符即可。简单版本:

text.split("<br />".map(function(line){ return line.split(","); })
text.split(“
”.map(函数(行){return line.split(“,”;})
也可以通过正则表达式进行拆分,如

text.split(/\s*<br ?\/>\s*/)...
text.split(/\s*\s*/)。。。

如果您确实在DOM中拥有CSV数据,则可以删除所有br元素,并使用剩余的(文本)节点作为行数组。

如果您只想“从逗号之间获取数据”,则只需执行此操作即可:

或者,如果您只需要一组行:

var lines = yourElem.innerHTML.split(",");

这将返回一个包含完整

元素的行数组。但不清楚这是否是您想要的。

您提到您可以控制通过AJAX获取的数据,您是对的,您当前的方法不是最好的主意。首先,您不应该尝试自己解析HTML,即使您认为t的“简单”-不同的浏览器会为完全相同的内容提供不同的
innerHTML
。相反,使用DOM查找您要查找的信息

也就是说,这里正确的方法只是从服务器返回一个对象;然后您就可以直接访问您的数据。几乎每种服务器端语言都有某种输出JSON的功能,JavaScript可以使用
JSON.parse()
本地解析JSON字符串1

从服务器返回:

{items: [
    { id: 0, name: '...' },
    { id: 1, name: '...' },
    ...
]}
在客户机上(假设jQuery)

$.getJSON('/path to script/',函数(d){
对于(变量i=0;i


1-在现代浏览器中

只需从服务器获取一个JSON对象。@josh3736这是一个非常干净的解决方案。感谢您通读并看穿了我的愚蠢。很高兴我能提供帮助——您应该在我的答案旁边,这样每个人都知道您的问题已经解决。Genius。感谢此解决方案。
{items: [
    { id: 0, name: '...' },
    { id: 1, name: '...' },
    ...
]}
$.getJSON('/path-to-script/', function(d) {
    for (var i = 0; i < d.items.length; i++) {
        d.items[i].id;
    }
});