我正在使用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”区块......
答案 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,请使用秒。