+ -
当前位置:首页 → 问答吧 → json时append里面添加标签<a>问题

json时append里面添加标签<a>问题

时间:2009-03-27

来源:互联网

尝试jquery中发现个问题。环境如下:
json:
[{"linkKey":"http::\/\/www.demo.com","linkValue":"demo"}]

html:
<div id="site"></div>
<div><a id="home">show</a></div>
想在id为site的DIV块中加入一个<a/>标签

jquery:
$(document).ready(function(){
    $("#home").click(function(){
        $("#site").empty();    
        $.getJSON(
            "demo.jsp",
            function(json){
                $.each(json,function(i){
                    $("#site").append("<span><a href="+json.linkKey+">"+json.linkValue+"</a></span>");
                });
            }
        );
    });
});
其中demo.jsp返回json格式为[{"linkKey":"http::\/\/www.demo.com","linkValue":"demo"}]

执行结果为<div id="site"><span><a href="http://www.demo.com"/>demo</span></div><div  id="home" href="#">demo</div>

希望是这样的<a href="http://www.demo.com">demo</a>
但结果是<a hef="http://www.demo.com"/>demo

请教有什么方法解决
谢谢

作者: opengloves   发布时间: 2009-03-27

是不是转义字符有问题啊

作者: wublue12   发布时间: 2009-03-27

很奇怪,现在又可以了……
$.each(json,function(i){
  var v ="<span><a href="+json.linkKey+">"+json.linkValue+"</a></span>"
  $("#site").append(v);
)};
改成这样就可以了,不过我感觉以前的也没问题啊,都是一样的意思。

后台jsp用的json-simple这个lib生成的json文件,应该不存在转义字符问题吧?
我试了很长时间,一直不可以。
现在居然可以了,人品有问题啊。

作者: opengloves   发布时间: 2009-03-27

太神奇了……
大部分是正确的
但是一小部分还是错误的,而且不同的浏览器的错误的地方还不一样……
神奇

作者: opengloves   发布时间: 2009-03-30

谢谢,wublue12
始终找不到原因
改方法了,在每个链接上加了个id
$("#id"+x).attr("href",json.linkKey);
不出错了,浏览器的表现也一样了
但这样做很不爽……
jquery太神奇了
去它的bug tracker找找,如果没有,反映一下情况,唉。

作者: opengloves   发布时间: 2009-03-30