我有一个包含id为“frmCmt”的表单的html页面,我想在其他文档中显示此表单,我使用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;
})});
请帮忙。
答案 0 :(得分:1)
您当前的代码不会有三个原因:
msg
中的所有内容作为HTML注入到您的元素中; .filter
仅在发生后才运行,因此无法正常工作。.filter
过滤来自jQuery对象的匹配集合中的项目,但是tou没有使用.filter
的结果来做任何事情,所以再次它不起作用。#frmCmt
元素,因此.filter
将评估为“空”jQuery实例;即使以某种方式使用它,结果也不会是你所期望的。将代码更改为
var html = $(msg).find("#frmCmt").html();
$("#commentContainer"+postID).html(html);
此代码从msg
的内容创建一个jQuery对象,并在将.find
插入DOM之前将所需元素归零。
答案 1 :(得分:0)
您可能需要在此处使用find()
而不是.filter(),仅当给定元素是msg
解决问题的一种方法可能是
$(msg).find('#frmCmt').appendTo($("#commentContainer"+postID).empty())
或者您可以使用.load()函数
$("#commentContainer"+postID).load("http://mysite.com/post/comment/"+postID + ' #frmCmt')