下面是我的代码(不要担心'off',它是基于用户点击的位置的偏移量)。在第二行,我试图克隆一个现有的div,然后显示克隆的副本?但它不起作用。但是,如果我删除clone()然后代码确实有效,但当然它只是显示现有的div而不是我需要的。
var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });
div.show();
任何提示?
答案 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)
$('.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");
})