获取克隆元素的ID

时间:2010-04-19 10:35:32

标签: jquery jquery-ui

我正在使用jQuery draggable和droppable。我正在droppable的drop事件中克隆可拖动的小部件。

我想获取克隆元素的ID,该元素将通过AJAX请求发送到应用程序。我无法获取ID。 console.log返回空字符串。

var dropElem = ui.draggable.html();
var clone = $(dropElem).clone();
var widgetType = $(clone).attr('id');
$(this).append(clone);

另外,我想在ajax请求的响应事件中更改克隆元素的ID。如何在附加后特别更改克隆事件的ID?

2 个答案:

答案 0 :(得分:5)

这是因为jQuery的clone()方法没有克隆id。这样做会破坏有效的DOM / HTML规则。您需要自己设置ID,例如:

var dropElem = ui.draggable.html();
var clone = $(dropElem).clone();
var widgetType = 'ClonedElementX'; //whatever you want the id to be
clone.attr('id',widgetType);
$(this).append(clone);

值得注意的是,默认情况下,不会使用GET或POST(AJAX或标准请求)将ID发送到服务器。如果它是“input”类型元素,您还需要设置“name”属性。如果有自定义代码在AJAX请求中发送id,你可以忽略它。

答案 1 :(得分:2)

我不熟悉jQuery的克隆方法,但是HTML文档可能没有两个具有相同ID的元素。也许jQuery剥离id来避免问题。我建议你使用原始的id并为克隆分配一些新的id。