我正在使用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?
答案 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。