jQuery.filter()不起作用
我有一个html页面,其中包含一个id为“frmCmt”的表单,我只想在其他文档中显示此表单,我使用jQuery.filter()但现在可以工作并显示整个页面 我的jQuery代码:jQuery.filter()不起作用,jquery,filter,Jquery,Filter,我有一个html页面,其中包含一个id为“frmCmt”的表单,我只想在其他文档中显示此表单,我使用jQuery.filter()但现在可以工作并显示整个页面 我的jQuery代码: function showCommentForm(postID){ $.ajax({ type: "GET", cache: true, url: "http://mysite.com/post/comment/"+postID, success:(function(msg){ $("#commentContai
function showCommentForm(postID){
$.ajax({
type: "GET",
cache: true,
url: "http://mysite.com/post/comment/"+postID,
success:(function(msg){
$("#commentContainer"+postID).html(msg).filter("#frmCmt") ;
return false;
})});
请帮助。由于以下三个原因,您当前的代码无法工作:
msg
中的所有内容作为HTML注入到元素中.filter
仅在发生这种情况后运行,因此它不可能工作.filter
从jQuery对象的匹配集合中筛选项目,但您没有使用.filter
的结果来执行任何操作,因此它不会再次工作#frmct
元素,因此.filter
将计算为“空”jQuery实例;即使以某种方式使用,结果也不会是你所期望的var html = $(msg).find("#frmCmt").html();
$("#commentContainer"+postID).html(html);
此代码从
msg
的内容创建一个jQuery对象,并使用将所需元素归零。在将其插入DOM之前查找它。您当前的代码将无法工作,原因有三:
您正在将msg
中的所有内容作为HTML注入到元素中.filter
仅在发生这种情况后运行,因此它不可能工作
.filter
从jQuery对象的匹配集合中筛选项目,但您没有使用.filter
的结果来执行任何操作,因此它不会再次工作
本例中的匹配集不包括任何#frmct
元素,因此.filter
将计算为“空”jQuery实例;即使以某种方式使用,结果也不会是你所期望的
将代码更改为
var html = $(msg).find("#frmCmt").html();
$("#commentContainer"+postID).html(html);
此代码从msg
的内容创建一个jQuery对象,并在将其插入DOM之前使用.find
将所需元素归零。您可能需要使用find()
而不是.filter()。这里,只有当给定元素是msg
中的顶级元素时,filter才会工作
解决这个问题的一个方法可能是
$(msg).find('#frmCmt').appendTo($("#commentContainer"+postID).empty())
或者可以使用.load()函数
您可能需要在此处使用find()
而不是.filter(),只有当给定元素是msg
解决这个问题的一个方法可能是
$(msg).find('#frmCmt').appendTo($("#commentContainer"+postID).empty())
或者可以使用.load()函数
嘿,阿伦,你刚刚编辑了我的答案,似乎是错的:)@Cherniv抱歉,是的,这是一个错误。这是因为顺序“洗牌”嘿,阿伦,你刚刚编辑了我的答案,似乎是错的:)@Cherniv抱歉,是的,这是一个错误。这是因为顺序“洗牌”我得到了这个错误:未捕获错误:语法错误,无法识别的表达式:。。。jquery.min.js:4@IRonMAN:这一点都没有帮助,而且完全不清楚(但非常令人不安)为什么要将HTML评估为JS代码。您需要进行一些调试——是什么代码导致了错误?代码的输入是什么?我得到了这个错误:未捕获错误:语法错误,无法识别的表达式:。。。jquery.min.js:4@IRonMAN:这一点都没有帮助,而且完全不清楚(但非常令人不安)为什么要将HTML评估为JS代码。您需要进行一些调试——是什么代码导致了错误?代码的输入是什么?我的问题还没有解决,我在等待你的解决方案。我在使用下面的一个代码时遇到了这个错误!未捕获错误:语法错误,无法识别的表达式:。。。jquery.min.js:4我的问题还没有解决,我在等待你的解决方案。我在使用下面的一个代码时遇到了这个错误!未捕获错误:语法错误,无法识别的表达式:。。。jquery.min.js:4