2010-04-19 106 views
2

我正在使用jQuery可拖动和可拖拽。我在droppable的drop事件中克隆可拖动的小部件。获取克隆元素的ID

我想获取克隆元素的ID,这个元素将被发送到带有AJAX请求的应用程序。我无法取得ID。 console.log返回空白字符串。

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

+4

克隆后自己设置ID不是更明智吗?否则,您最终会拥有多个具有相同ID的元素。 – Prutswonder 2010-04-19 10:37:18

回答

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); 

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

2

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