.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。 它可以是任何唯一标记,不一定是