0

サーバーから次の形式の xml 文字列を取得する必要があります。

<xml><material>
<record>
<id>..</id>
<name>..</name>
<quantity>..</quantity>
<plink>..</plink>
</record>
<record>
..
</record>
</xml></material>

クライアント側はこの xml を取得して処理します。

$.ajax({
  url:'getrecords.php',
  cache:false,
  type:"GET",
  dataType:'html',
  success:function (html){
    var records=$(html).find("record");
    alert(records.length);
  }

私の問題は、このコードは Chrome と Firefox では正常に動作しますが、IE 8.0 では動作しません (私は 8.0 を使用しています)。IE では 0 を警告し、Chrome と Firefox では正しい長さを警告します。

私はこれを試してみましたが、IEではレコードの長さが0ですが、Chromeでは問題ないことも示しています

var records=$("<xml><root><item></item></root></xml>").find("item");
4

2 に答える 2

1

返されるのがxmlの場合、dataTypeをhtmlとして設定するのはなぜですか? dataType 'xml' で試してください

于 2012-05-04T14:02:19.150 に答える
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="../../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var xml = '<?xml version="1.0" encoding="utf-8" ?><material><record><id>1</id><name>A</name><quantity>10</quantity>'
                    + '<plink>test</plink></record><record><id>2</id><name>B</name><quantity>20</quantity><plink>test1</plink>'
                    + '</record><record><id>3</id><name>C</name><quantity>34</quantity><plink>test2</plink></record><record>'
                    + '<id>4</id><name>B</name><quantity>45</quantity><plink>test6</plink></record></material>';



            //            $.ajax({
            //                url: 'getrecords.php', cache: false, type: "GET", dataType: 'html',
            //                success: function (xml) { 
            var data = $($.parseXML(xml));
            var records = $(data).find('record');
            alert(records.length);
            //                }
            //            });
        });
    </script>
</head>
<body>
    <?xml version="1.0" encoding="utf-8" ?>
    <material>
  <record>
    <id>1</id>
    <name>A</name>
    <quantity>10</quantity>
    <plink>test</plink>
  </record>
  <record>
    <id>2</id>
    <name>B</name>
    <quantity>20</quantity>
    <plink>test1</plink>
  </record>
  <record>
    <id>3</id>
    <name>C</name>
    <quantity>34</quantity>
    <plink>test2</plink>
  </record>
  <record>
    <id>4</id>
    <name>B</name>
    <quantity>45</quantity>
    <plink>test6</plink>
  </record>
</material>
</body>
</html>
于 2012-05-04T14:05:28.523 に答える