Django / JQuery语法错误:我不知道为什么我收到此错误

时间:2013-05-30 14:06:10

标签: javascript jquery python html django

我正在使用Django制作博客应用程序。 在post_save()中的post_edit.js函数中,我有这个post editt操作:

$.post(item.find("#post-form").attr("action") + "&ajax" , data, function(result) {
    if (result != "failure") {
        item.before($("li", result));
        item.remove();
        $("ul.posts .edit").click(post_edit);
    }

    else {
        alert("Failed to validate post before saving")
    }   
});

因此,在将博客数据发布到我的post_list.html模板后,if块的第一行 从结果中提取li元素,并将其插入到原始li元素“item”之前。

问题是,在完成此操作后,我得到一个JQuery语法错误:

Error: Syntax error, unrecognized expression: 
    <ul class="posts">
        <li>
            <a href="/post/1" class="title">NEW POST</a> 
            <a href="/save/?id=1" class="edit">[edit]</a> 
            <br /> Tags: 

            <ul class="tags">
                <li>
                    <a href="/tag/tag1">tag1</a>
                </li> 
                <li>
                    <a href="/tag/tag2">tag2</a>
                </li> 
            </ul> <br /> 
        </li> 
    </ul>

我无法弄清楚为什么我会收到语法错误,因为 ul class="posts".../ul块看起来对我来说完全没问题。调试后,我很确定 它是造成问题的第3行(item.before($("li", result));)

有人可以帮我找到问题吗?

谢谢

+ 还有,另一个混乱。

“结果”是ul块:

ul class="posts">
    <li>
        <a class="title" href="/post/1">NEWPOST</a>
        <a class="edit" href="/save/?id=1">[edit]</a>
        <br> Tags:

        <ul class="tags">
            ...
        <br>
    </li>
</ul>

我认为这句话item.before($("li", result)); 应该从结果中提取“li”元素,但它看起来像是 返回整个“ul”区块......

1 个答案:

答案 0 :(得分:1)

item.before($("li", result));

应该是

item.before($("li", $(result)));

或者,也许

item.before($("li"), result));

取决于您要实现的目标和HTML结构。

错误来源是$的第二个参数应该是DOM context or JQuery element,用作元素搜索树顶部(即只搜索后代)。使用您的代码,您试图在li下找到htmlString,这显然是一个错误。所以,很可能只是遗漏或错位)

如果你试图在返回的字符串中找到li,你应该先坚持下去。如果您要在li之前插入返回的html,请使用秒。