麻烦在Jquery中循环子节点

时间:2015-11-05 16:49:26

标签: jquery jquery-chosen

我以下列方式使用XML

<categories>
   <category id="1">abc</category>
   <category id="2">eev</category>
   <category id="3">adf</category>
   <category id="4">ggt</category>
</categories>

我想循环<categories>的所有子项并获取id和文本并将其加载到选择框中

我的JQuery看起来像这样

<script language="javascript" type="text/javascript">
$(document).ready(function () {
    $.get('getCategoryHandler.ashx', function (d) {
        $(d).each(function (index) {                                                            
            var opt = '<option value="' + $(this).attr("id") + '">' + $(this).text() + '</option>';
            $("#catOptions").append($(opt)).trigger("chosen:updated");                                                            
        });
        return false;
    });
});
</script>

有了这个,我一次性获得所有文本而不是循环

我使用了find('category'),但它很慢,15类节点需要将近10秒(在IE 11中)

我的剧本有什么问题?

1 个答案:

答案 0 :(得分:1)

假设'd'是整个XML Categories节点。你需要遍历子节点而不是“类别”节点本身。 '$ .each()'函数还提供2个参数。索引和对象本身。用它。注意'child'参数。

此外,您正在寻找属性'uuid',但您在此处粘贴的xml只有属性'id'。确保你正在提取正确的属性。

RequireUser