jQuery$.map()返回新元素

jQuery$.map()返回新元素,jquery,map,Jquery,Map,我有以下代码: $('#test') .append($.map(this.items, function (item, index) { return '<li><input type="checkbox" value="' + item.key + '">' item.title + '</li>' }).join('')); $(“#测试”) .append($.map)(this.items,函数(item,索引){

我有以下代码:

$('#test')
    .append($.map(this.items, function (item, index) {
        return '<li><input type="checkbox" value="' + item.key + '">' item.title + '</li>'
    }).join(''));
$(“#测试”)
.append($.map)(this.items,函数(item,索引){
返回“
  • ”item.title+”
  • ' }).加入(“”);
    但我希望它看起来更像这样:

    $('#test')
        .append($.map(this.items, function (item, index) {
            return $('<li/>').append('<input/>', {type: 'checkbox', value: item.key}).text(item.title)
        });
    
    $(“#测试”)
    .append($.map)(this.items,函数(item,索引){
    返回$('
  • ').append('',{type:'checkbox',值:item.key}).text(item.title) });
  • 但这似乎有效。 有人能帮忙吗

    编辑 由于答案似乎不适用于RL情况(我将代码缩短以解释),以下是我的实际代码:

    _RenderCheckbox: function () {
        $('<ul/>')
            .appendTo(this.element)
            .addClass('widget')
            .append($('<input>').attr({ type: 'text', class: 'field', 'data-map': this.element.attr("data-map") }))
            .append($.map(this.items, function (item, index) {
                    return '<li><label><input type="checkbox" value="' + item.key + '">' + item.parent + item.title + '</label></li>'
            }).join(''));
    },
    
    \u RenderCheckbox:function(){
    $(“
      ”) .appendTo(此.element) .addClass(“小部件”) .append($('').attr({type:'text',class:'field','datamap':this.element.attr(“datamap”)})) .append($.map)(this.items,函数(item,索引){ 返回“
    • ”+item.parent+item.title+”
    • ” }).加入(“”); },
    这是我正在开发的jquery ui小部件的一部分。

    .text()
    替换
  • 的内容。您必须
    附加
    /
    前置
    您的元素:

    return $('<li />', {
        text: item.title
    }).append($('<input />', {
        type: 'checkbox',
        value: item.key
    }));
    
    如果你喜欢大的一行:

    var $test = $('#test');
    
    $.each(this.items, function(item, index) {
        $('<li />', {
            text: item.title
        }).appendTo($test)
          .append($('<input />', {
            type: 'checkbox',
            value: item.key
        }));
    });
    
    var$test=$('#test');
    $.each(this.items,function(item,index){
    $(“
  • ”{ 文本:item.title }).appendTo($test) .附加($(''){ 键入:“复选框”, 值:item.key })); });
  • .text()
    替换您的
  • 的内容。您必须
    附加
    /
    前置
    您的元素:

    return $('<li />', {
        text: item.title
    }).append($('<input />', {
        type: 'checkbox',
        value: item.key
    }));
    
    如果你喜欢大的一行:

    var $test = $('#test');
    
    $.each(this.items, function(item, index) {
        $('<li />', {
            text: item.title
        }).appendTo($test)
          .append($('<input />', {
            type: 'checkbox',
            value: item.key
        }));
    });
    
    var$test=$('#test');
    $.each(this.items,function(item,index){
    $(“
  • ”{ 文本:item.title }).appendTo($test) .附加($(''){ 键入:“复选框”, 值:item.key })); });
  • 您是否尝试过将东西拼接起来以避免返回错误的对象? 尚未尝试过您的代码这可能会奏效:

    $('#test')
    .append($.map(this.items, function (item, index) {
        var ret = $('<li/>');
        var input = ret.append('<input/>', {type: 'checkbox', value: item.key});
        input.text(item.title);
        return ret;
    });
    
    $(“#测试”)
    .append($.map)(this.items,函数(item,索引){
    var ret=$(“
  • ”); var input=ret.append(“”,{type:'checkbox',值:item.key}); 输入.文本(项目.标题); 返回ret; });
  • 您是否尝试过将东西拼接起来以避免返回错误的对象? 尚未尝试过您的代码这可能会奏效:

    $('#test')
    .append($.map(this.items, function (item, index) {
        var ret = $('<li/>');
        var input = ret.append('<input/>', {type: 'checkbox', value: item.key});
        input.text(item.title);
        return ret;
    });
    
    $(“#测试”)
    .append($.map)(this.items,函数(item,索引){
    var ret=$(“
  • ”); var input=ret.append(“”,{type:'checkbox',值:item.key}); 输入.文本(项目.标题); 返回ret; });
  • 您的代码返回一个
    [object object]
    的联接列表,这与我以前遇到的问题相同。您的代码返回一个
    [object object]
    的联接列表,这与我以前遇到的问题相同。@Dementic:是给我的:
    [
  • ​酒吧​​]
  • 你能帮我吗?既然我回来了
    [object object]
    @Dementic:不要使用
    .join(“”)
    。请查看我的答案以了解正确的操作方法。@Dementic:
    join()
    是你的问题。它会将你的对象转换成字符串,这不是你想要的。因此,这个附加操作只有在
    .each()下才可能
    而不是
    map()
    ?@dementric:是给我的:
    [
  • ​酒吧​​]
  • 你能帮我吗?既然我回来了
    [object object]
    @Dementic:不要使用
    .join(“”)
    。请查看我的答案以了解正确的操作方法。@Dementic:
    join()
    是你的问题。它会将你的对象转换成字符串,这不是你想要的。因此,这个附加操作只有在
    .each()下才可能
    而不是使用
    map()
    $。map
    返回
    Array
    。append()
    不接受
    Array
    作为其第一个参数。您会发现使用
    $循环要容易得多。每个(this.items,…)
    ,在运行过程中逐步构建和追加
  • 元素。
    $.map
    返回
    数组
    。append()
    不接受
    数组
    作为其第一个参数。您会发现使用
    $.each(this.items,…)循环要容易得多
    ,在运行过程中逐步构建和附加
  • 元素。