我正在使用 jQuery 读取由 ajax 调用返回的 XML。仅在 Safari 浏览器中,我得到了我请求的节点的重复/双重读取。
我的 XML:
<?xml version="1.0" ?>
<record>
<f id="1">2</f>
<f id="2">er</f>
<f id="3">bd1rh24</f>
<f id="4">9</f>
<f id="5">1</f>
<f id="6">Experience Type</f>
<f id="7">Dashboard Search</f>
<f id="8">bd1rh24</f>
<f id="9">Virtual Reality</f>
<f id="10">Test</f>
</record>
我的 HTML 和 Javascript:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(function() {
var url = "test.xml";
$.ajax({
type: "GET",
url: url,
cache: false,
dataType: "xml",
success: function(data) {
$.each($("record", data), function() {
sCchoices = $("f[id='9']", this).text();
alert(sCchoices);
});
}
});
});
</script>
</head>
<body></body>
</html>
在除 Safari 之外的所有浏览器(IE、Chrome、FireFox)中,警报都会输出“Test”。在 Safari 中,输出是“TestTest”。我发现问题在于节点的数量等于我输入的 ID 号。10 个节点 - id=10。如果您请求另一个节点 ID,则输出正确且不重复。
为什么会发生这种情况,我该如何解决?