Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.filter()不起作用_Jquery_Filter - Fatal编程技术网

jQuery.filter()不起作用

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

我有一个html页面,其中包含一个id为“frmCmt”的表单,我只想在其他文档中显示此表单,我使用jQuery.filter()但现在可以工作并显示整个页面

我的jQuery代码:

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