我正在尝试使用jQuery Form plugin将Ajax添加到ExpressionEngine注册表单中。大多数表单错误都是使用Profile:Edit处理并以JSON格式返回的,而且解析它们时没有遇到任何重大问题。 Profile:Edit未处理的唯一错误是当有人尝试使用仍处于“待处理”状态的电子邮件地址重新注册时。为此,我在HTML中获得了standard EE error template。
我想要做的是设置一个jQuery $.each()
循环并输出错误列表项。但是当我尝试解析HTML时,我在控制台中获得了奇怪的数据。即使是一个非常简单的jQuery函数也不能像我期望的那样工作。例如,使用此代码,我希望找回#content
div:
$('.myForm').ajaxForm({
success: function(data){
var theContent = data.find('#content');
console.log(theContent);
}
});
但是我在控制台中得到了这个:
Uncaught TypeError: Object
<!-- Full HTML of Error Template -->
has no method 'find'
如果我使用.filter()
代替.find()
,则会发生同样的事情。
如果我在选择器语法中包含data
,请执行以下操作:
$('.myForm').ajaxForm({
success: function(data){
var theContent = $(data).find('#content');
console.log(theContent);
}
});
我在控制台中得到了这个:
[prevObject: e.fn.e.init[9], context: undefined, selector: "#content"]
context: undefined
length: 0
prevObject: e.fn.e.init[9]
0: #text
1: <title>
2: #text
3: <meta>
4: #text
5: <style>
6: #text
7: <div>
8: #text
length: 9
__proto__: Object[0]
selector: "#content"
__proto__: Object[0]
这不是我的预期,也不知道如何处理它。
将dataType
设置为'html'似乎没有什么区别。
有什么想法?这件事已经让我年复一年,这真令人沮丧。
答案 0 :(得分:4)
data.find('#content');
无效,因为数据不是jQuery对象。回复的回复是什么样的?如果你成功做了一个console.log(数据),你会得到什么?