我在Ajax请求中做错了什么?

时间:2011-11-09 17:07:49

标签: javascript jquery ajax

我正在使用jquery创建一些Ajax请求,代码显然工作正常;但是当我用firebug检查代码时,我发现请求会生成一些意外的 a 标记。脚本是:

$.ajax({
    url: '/some/request/',
    type: 'GET',
    success: function(data){
        $('#main').html(data);

        // To see the error I do this:
        alert(data);
        alert($('#main').html());
    }
});

警报会返回如下内容:

警报(数据) - >

<div class="list">
    <ul>
        <li><a href="javascript:void(0);">Option 1</a></li>
        <li><a href="javascript:void(0);">Option 2</a></li>
        <li><a href="javascript:void(0);">Option 3</a></li>
    </ul>
</div>

警报($( '#主')的html()) - &GT;

<div class="list">
    <a></a>
    <ul>
        <a></a>
        <li><a href="javascript:void(0);">Option 1</a></li>
        <li><a href="javascript:void(0);">Option 2</a></li>
        <li><a href="javascript:void(0);">Option 3</a></li>
    </ul>
</div>

第二次返回添加了一些额外的标签 a ...我不知道为什么方法$('#main')。html(data)正在以这种方式工作。

编辑更多信息:

  • 我使用的是Firefox 7.01,但在Google Chrome中遇到同样的问题 发生。
  • 我正在使用jquery 1.6.2
  • 示例:http://jsfiddle.net/z4rYU/3/

1 个答案:

答案 0 :(得分:1)

根据您的小提琴,您的锚标签未正确关闭。请参阅下面的更正字符串:

var data = '<div id="main-header"><ul id="breadcrumb"><li class="crumb"><a href="#/">option 1</a></li><li class="crumb"><a href="#/">option 2</a></li></ul>';

//Changed: <a href="#/">option 2<a>
//To:      <a href="#/">option 2</a>

这是a corrected fiddle