Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中包装生成的元素_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery中包装生成的元素

Javascript 在jQuery中包装生成的元素,javascript,jquery,Javascript,Jquery,我正在尝试创建以下内容: <label><input id=""><span>Lorem ipsum dolor</span></label> 这是我的代码: $('.property .includes') .append('<label>').html( $('<input>').attr('id', this.id) + $('<span>').html

我正在尝试创建以下内容:

<label><input id=""><span>Lorem ipsum dolor</span></label>
这是我的代码:

$('.property .includes')
    .append('<label>').html(
        $('<input>').attr('id', this.id) +
        $('<span>').html(this.description)
    );
它似乎不起作用,因为它只是说,[对象][对象]


如何创建上述代码?

您应该执行以下操作:

var label = $("<label />").html(
    "<input id='" + this.id + "'>" +
    "<span>" + this.description + "</span>"
);
$('.property .includes').append( label );

您应该执行以下操作:

var label = $("<label />").html(
    "<input id='" + this.id + "'>" +
    "<span>" + this.description + "</span>"
);
$('.property .includes').append( label );

您必须将代码更改为:

$('<label/>')
    .append( $('<input>').attr('id', this.id) )
    .append( $('<span>').html(this.description) )
    .appendTo('.property .includes');

您必须将代码更改为:

$('<label/>')
    .append( $('<input>').attr('id', this.id) )
    .append( $('<span>').html(this.description) )
    .appendTo('.property .includes');
试着用下面的方法

$('.property .includes').append(
           $('<label />').append($('<input />', {'id': this.id}))
                         .append($('<span />').html(this.description))
     );
演示:

尝试使用下面的方法

$('.property .includes').append(
           $('<label />').append($('<input />', {'id': this.id}))
                         .append($('<span />').html(this.description))
     );
演示:

mkoryak击败了我

    $('.property .include').append($('<label></label>')
                              .append($('<input></input>').attr('id', this.id))
                              .append($('<span></span>').html(this.description)));
这里也有一个答案

mkoryak比我先到

    $('.property .include').append($('<label></label>')
                              .append($('<input></input>').attr('id', this.id))
                              .append($('<span></span>').html(this.description)));

这里也有一个例子

html将用于.property.includes,而不是在标签上。您将连接javascript对象$'some-sleector'实际上是一个字符串形式的对象,这就是为什么javascript类型将对象强制转换为[object],并创建字符串“[object]”+“[object]”。正如评论员已经注意到的那样,您应该使用.append。html将用于.property.includes,而不是在label上。您将连接javascript对象。$'some-sleector'实际上是一个字符串形式的对象,这就是为什么javascript类型将对象强制转换为[object],并创建字符串“[object]”+“[object]”。正如评论员已经注意到的那样,您应该使用.append。为什么不使用:.append$.attr'id',this.id,$.htmlthis.description?@NicoSantangelo这更漂亮。我甚至不知道那是可能的。我必须说,我通常不使用.append,我喜欢使用模板来创建我的DOM结构,我发现它更易于维护。如果你将.html改为.text,我会给你一个升级票…@Bergi。那我不想你投我一票。我没有看到OP说this.description只包含文本而不包含html片段。为什么不使用:.append$.attr'id',this.id,$.htmlthis.description?@NicoSantangelo这更漂亮。我甚至不知道那是可能的。我必须说,我通常不使用.append,我喜欢使用模板来创建我的DOM结构,我发现它更易于维护。如果你将.html改为.text,我会给你一个升级票…@Bergi。那我不想你投我一票。我没见过OP说this.description只包含文本而不包含html片段。你不应该将jQuery对象传递给。htmlYou不应该将jQuery对象传递给。htmlWhy应该?为什么要将DOM创建与innerHTML混合使用?为什么要?为什么要将DOM创建与innerHTML混合使用?