【发布时间】:2012-12-04 22:00:12
【问题描述】:
将 json 数组发送到我想将其附加到 div 的 jquery 脚本时遇到问题。在 php 中,我创建了一个包含以下 html 代码的 json 数组:
<li id="1234">
<span class="some">$1</span>
<span class="some2">$1</span>
<div class="somediv"></div>
</li>
所以整个json数组是这样的:
[{"id":"12435","text":"<li id=\"1234\"><span class=\"some\">$1</span>"},{"id":"13542","text":"<span class=\"some2\">$1</span><div class=\"somediv\"></div></li>"}];
现在我使用 getJSON 来获取 json 对象,然后将结果附加到这样的 div 中:$(".container").append(val);
现在的问题是,在尝试附加 JSON 结果时,这就是附加的内容:
<li id="1234">
<span class="some">$1</span>
</li>
<li id="1234">
<span class="some2">$1</span>
<div class="somediv"></div>
</li>
当我尝试用alert(val) 输出我的val 时,它清楚地表明json 结果是正确的(没有结束<li> 标记),但是在附加它时,添加了<li> 标记。
有人知道这可能是什么原因吗?
这就是我从我的 php 文件中获取值的方式:
$.getJSON("../ajax.php?action=getresults", function(data)
{
var obj = $.parseJSON(data);
$.each(obj, function(key,val)
{
$.each(obj[key], function(key, dval)
{
if(key == "text")
{
alert(dval);
$(".container").append(dval);
}
})
});
});
【问题讨论】:
-
向我们展示您是如何获取值的,假设您不只是将 JSON 字符串“按原样”附加到页面?
-
.append()需要有效的 HTML,而不仅仅是片段。 -
你使用的是
$.getJSON,你不需要$.parseJSON。 -
那么除了
append()之外还有其他功能可以追加HTML片段吗? -
因为我想要在我的
ul中添加新的li元素,但在特定位置(例如ID 为3 的li元素后面。所以追加可能是错误的函数,因为它会将li元素放入另一个li元素中。