用HTML创建JavaScript数组
Create JavaScript array out of HTML
我正在一个数组上迭代以显示一些数据,同时创建另一个数组,该数组将用于创建JSON,然后将其分配给JavaScript变量。
<?php
$otherStuff=array();
foreach($myArray AS $row)
{
echo("<tr data-id='{$row['id']}'><td>{$row['firstname']}</td><td>{$row['firstname']}</td></tr>");
$otherStuff[$row['id']]=$row['otherStuff'];
}
echo('<script type="text/javascript">var otherStuff='.json_encode($otherStuff).';</script>');
?>
这似乎不是一个很干净的方式来完成这项任务。相反,我想知道创建一些隐藏的HTML,然后客户端解析它以创建所需的JavaScript变量是否更好。
这样做可能吗?这是个好主意,还是我应该做点别的?如果可能,如何?
感谢
下面是一个基本示例:
$arr = array('stuff' => 'goes here');
echo "<div data-other-stuff='" . htmlspecialchars(json_encode($arr)) . "'></div>";
产品:
<div data-other-stuff='{"stuff":"goes here"}'></div>
http://codepad.org/Bq5GZcVS
$('div').each(function ea(){
// Some browsers/versions do not support JSON.parse(), try json2.js
var data = $(this).attr('data-other-stuff'),
_data = JSON.parse(data);
console.log(data, _data);
});
生成(在console
中):
'{"stuff":"goes here"}' Object {stuff: "goes here"}
(第一个实际上是一个字符串,但我添加了单引号以使其显而易见。)
http://jsfiddle.net/0mv44jvd/1
就像任何JSON编码一样,一旦使用它,就必须将其转换为数组或对象。但这仍然有效。
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript