1

我目前正在开发一个 HTML 游戏,用户可以通过该游戏将项目拖放到正确的类别中。类别及其项目在 XML 文档中定义。

我的 XML 格式:

<config>
<game>
    <title>Dementia</title>
        <cat>
            <catTitle>Mild</catTitle>
            <item>mild-1</item>
            <item>mild-2</item>
            <item>mild-3</item>
        </cat>
        <cat>
            <catTitle>Moderate</catTitle>
            <item>Moderate-1</item>
            <item>Moderate-2</item>
            <item>Moderate-3</item>
        </cat>
        <cat>
            <catTitle>Severe</catTitle>
            <item>Severe-1</item>
            <item>Severe-2</item>
        </cat>
</game>

我想使用 jQuery 将这个 XML 文件解析为基于它们的类别的单独数组。

例如:

array1 = [轻度 1,轻度 2,轻度 3]

array2 = [中等 1,中等 2,中等 3] 等等...

这将允许我根据类别数组检查删除的项目的属性是否正确。

如果您对如何做到这一点有任何其他想法,请提出建议。

先感谢您。

4

3 回答 3

5

试试,像这样:

$(document).ready(function() {
    var arr = [];
    $(xml).find("cat").each(function(idx, v) {
        arr[idx] = [];
        $(v).find("item").each(function( i , vi) {
            arr[idx].push( $(vi).text() );
        });             
    });
    console.log( arr );
});

将返回如下响应:

[
    ["mild-1", "mild-2", "mild-3"]
, 
    ["Moderate-1", "Moderate-2", "Moderate-3"]
, 
    ["Severe-1", "Severe-2"]
]

因此,您可以访问单个数组,

console.log( arr[0] ); //for first, and so on..
于 2012-09-10T11:22:13.073 回答
3

试试这样:

$("cat", xml).each(function () {
   $("item", this).toArray();
});
于 2012-09-10T11:04:33.103 回答
1
$($.parseXML(xml)).find("cat").each(function (idx, v) {
  arr[idx] = [];
  $(v).find("item").each(function (i, vi) {
     arr[idx].push($(vi).text()
  );
 });

因为$(xml)在 IE 中不起作用(请参阅这jQuery.find()不会在 IE 中返回数据,但在 Firefox 和 Chrome 中会返回)。

于 2013-09-19T11:21:45.793 回答