为了在jsTree节点中存储任意数据,我将自定义属性(比如node-data)传递给create_node方法。但是我需要在单个属性中存储多个数据。(例如姓名、年龄等)哪种格式最适合 node-data 属性的值?我正在寻找一种可以轻松检索数据的格式。
例如,我们可以使用“name:John,age:26”这样的格式。但是我必须使用逗号作为分隔符来拆分字符串,并在冒号处拆分以分隔名称和值。有一个更好的方法吗?
为了在jsTree节点中存储任意数据,我将自定义属性(比如node-data)传递给create_node方法。但是我需要在单个属性中存储多个数据。(例如姓名、年龄等)哪种格式最适合 node-data 属性的值?我正在寻找一种可以轻松检索数据的格式。
例如,我们可以使用“name:John,age:26”这样的格式。但是我必须使用逗号作为分隔符来拆分字符串,并在冒号处拆分以分隔名称和值。有一个更好的方法吗?
您不使用数据属性的任何原因?受 jquery 和当前所有浏览器 (HTML5) 支持。所以不是 obj.attr("myattrib", true); 您可以将任意数据分配给任何对象。您可以轻松地执行以下操作:
node.data("name", "John");
node.data("age", 26);
然后在需要时检索它们:
var name = node.data("name");
在服务器端,假设您将数据作为 Json 数据发送回,您只需在服务器的 json 对象中定义(以最简单的形式,您可以得到更高级的)字典元数据,然后从字典,将对象转换为适当的类型,然后就可以了!
您可以在 json 数据数组中使用 li_attr 和 a_attr 将 html 属性传递给节点。
$list[] = array(
'id' => "year_" . $year->Year,
'text' => $year->Year,
'children' => TRUE,
'folder' => 'folder',
'li_attr' => array('year' => $year->Year),
'a_attr' => array('month' => $year->month)
);