克隆div并使其显示在屏幕上不起作用

时间:2012-10-15 15:48:56

标签: jquery

下面是我的代码(不要担心'off',它是基于用户点击的位置的偏移量)。在第二行,我试图克隆一个现有的div,然后显示克隆的副本?但它不起作用。但是,如果我删除clone()然后代码确实有效,但当然它只是显示现有的div而不是我需要的。

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });
div.show();

任何提示?

7 个答案:

答案 0 :(得分:2)

您正在克隆div 但未在DOM中的任何位置插入 ..

所以在你这样做之前它是不存在的

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });

$('body').append(div);   <-- Appending to body here.. You can append anywhere you want

答案 1 :(得分:2)

您需要将div附加到您的页面。目前,您刚刚创建了对克隆的引用而未显示它。

$( “正文”)附加(DIV);

答案 2 :(得分:1)

你必须在你的html中的某个地方附加克隆的div。 例如:

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });

// append to parent of "this"
var parent = $(this).parent();
div.appendTo(parent);

// should be unnecessary, except if the style is display:none
//div.show();

答案 3 :(得分:0)

您需要使用append()appendTo()将其附加到其他元素。

答案 4 :(得分:0)

可能是重复ID的问题

来自API page

  

注意:使用.clone()具有生成元素的副作用   重复的id属性,应该是唯一的。哪里   可能,建议避免使用此方法克隆元素   或者使用类属性作为标识符。

克隆后,尝试更改克隆元素的ID:

div.attr('id').val('#testtt')

答案 5 :(得分:0)

根据@andrewWhitaker的评论,您需要将新元素添加到DOM。 e.g。

div.attr('id').val( div.attr('id')+"_cloned" );
$("#my_container_element_id").append(div);

您也可以删除

div.show();

答案 6 :(得分:0)

在Jquery中

$('.addRow').click(function(){
var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });
div.show();
div.appendTo($("#testtt");

})