如何将html中的列表项解析为javascript数组
How to parse list item in html to javascript array
我要将数组从php传递给javascript,我的解决方案是使用php生成如下的html列表项:
<ul id="data" class="hidden">
<li value="0">
<ul>
<li value="id">1</li>
<li value="productLine">Vintage Cars</li>
</ul>
</li>
<li value="1">
<ul>
<li value="id">2</li>
<li value="productLine">Ships</li>
</ul>
</li>
<li value="2">
<ul>
<li value="id">3</li>
<li value="productLine">Trains</li>
</ul>
</li>
</ul>
并使用javascript DOM API使其成为多维关联数组:
function selectProductLine(){
var rootUlNode = document.getElementById('data');
var rootLiNodes = rootUlNode.children;
var hiddenHash = {};
for(var i=0;i< rootLiNodes.length;i++){
var rootLiNodeValue = rootLiNodes[i].getAttribute('value');
var liNodes = rootLiNodes[i].firstElementChild.children;
for(var i=0; i < liNodes.length;i++){
hiddenHash[rootLiNodeValue] = {};
var liNodeValue = liNodes[i].getAttribute('value');
var liNodeContent = liNodes[i].textContent;
hiddengegHash[rootLiNodeValue][liNodeValue] = liNodeContent;
}
}
return hiddenHash;
}
但是运行代码会使我的浏览器崩溃,所以我无法调试它,有人可以指出我的问题在哪里吗?我认为应该有一种将数据从php传输到javascript的元素方法,比如使用json,有人能在这个主题上提供更好的解决方案或资源吗?
如果您有一个PHP数组,可以使用[json_encode][1]
将其呈现为JSON对象。例如:
<?php
$arr = array(
array('id' => 1, 'productLine' => 'Vintage Cars'),
array('id' => 2, 'productLine' => 'Ships')
);
echo 'var products = ' . json_encode($arr) . ';';
?>
将呈现如下:
var products = [ { 'id': 1, 'productLine': 'Vintage Cars' }, { 'id': 2, 'productLine': 'Ships' } ];
好吧,据我所知,你的脚本几乎可以。然而,您已经将hiddenHash从底部开始的5行拼写错误。如果我只是将hiddengeghash更改为hiddenhash,它至少在jsfiddle中运行时没有错误。我随意添加了一个document.write,只是为了确保它真的返回一个数组。
http://jsfiddle.net/2WBjJ/
我还将第二个I更改为i2,因为它们用于同一个循环
更好的方法是在PHP中将数据结构编码为JSON,然后在生成的字符串客户端调用JSON.parse()。您可以使用json_encode
对数据进行编码,并使用json2.js解析字符串。
请注意适当地转义JSON字符串。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)