.each()方法在IE中不起作用

在成功方法中,我无法循环xml响应。

WebMethod是:

Public Shared Function GetTypes(ByVal TypeID As Integer) As String Dim db As New DbManager Dim ds As New DataSet db.AddParameter("@TypeID", TypeID) ds = db.ExecuteDataSet("GetTypes") ds.Tables(0).TableName = "Types" Dim jsSer As New System.Web.Script.Serialization.JavaScriptSerializer Return jsSer.Serialize(ds.GetXml()) End Function 

成功方法是

 SuccessMethod: function (response, that) { $(response).find('Type').each(function (index) { alert("called"); }) }); 

xml响应是:

 12 5 2011-04-24T09:00:00+05:00 Here is type. 

 22 5 2011-05-08T09:30:00+05:00 Here is type. 

您的xml响应包含“类型”,它不包含“类型”…

尝试使用filter()代替。 查找通常会查找您使用它的选择的子元素。

也许你也可以使用:

 $.each($(response).find('Type'), function(index, value) { alert('succes'); } 

也许IE搞砸了差异语法,这就是jQuery的网站如何描述这个function。 虽然我的第一个猜测是你的方法aswel ..

这在IE中适用于我:

 response = '' + response + ''; xmlDoc = $.parseXML(response); $(xmlDoc).find('Type').each(function (index,val) { alert("called"); }); 

顺便提一下,jquery在解析XML时区分大小写,因此选择器必须是’Type’,而不是’type’。 我必须将问题中给出的响应包含在根元素中,以使其成为有效的xml。 它可以是任何唯一标记,不一定是