数组最后一个单元格中不需要的对象

An unwanted object in the last cell of an array

本文关键字:对象 不需要 最后一个 单元格 数组      更新时间:2023-09-26

我在解析的XML数组上使用以下代码:

$(this).find("cp_group").each(function() {
    $("select#comp_1").append('<optgroup label="' + $(this).attr('label') + '"><option>' + $(this).find("cmp").map(function() {
        return $(this).text();
    }).get().join("</option><option>") + $(this).append('</option></optgroup>'));
});​

我在每个选项组的最后一个选项中得到一个不需要的 [对象对象],如下所示:

<select name="comp_1" id="comp_1">
<optgroup label="Combat">
<option>Arme</option>
<option>Arts martiaux</option>
<option>Esquive</option>
<option>Feinte</option>
<option>Parade</option>
<option>Lutte[object Object]</option>

我不明白这个[对象对象]是从哪里来的,我没有实现不得到它或删除它。谢谢你的帮助。

它来自+ $(this).append(...) .你只需要+'</option....'部分,没有那个jQuery包装器。

你误解了jQuery,特别是append是如何工作的。当你用jQuery操作东西时,你不是在处理标记(主要是),而是在处理对象(DOM元素)。

这应该可以解决它:

$(this).find("cp_group").each(function() {
    // Get this entry
    var $this = $(this);
    // Create the optgroup
    var optgroup = $('<optgroup label="' + $this.attr('label') + '">');
    // Fill it in
    $this.find("cmp").each(function() {
        $("<option>").text($(this).text()).appendTo(optgroup);
    });
    // Append it to the select
    $("select#comp_1").append(optgroup);
});​