0

我正在使用 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,则输出正确且不重复。

为什么会发生这种情况,我该如何解决?

4

0 回答 0