【问题标题】:Getting ID of a cloned element获取克隆元素的 ID
【发布时间】:2010-04-19 19:58:48
【问题描述】:

我正在使用可拖放的 jQuery。我在 droppable 的 drop 事件上克隆了可拖动的小部件。

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

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

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

【问题讨论】:

  • 克隆后自己设置ID不是更明智吗?否则,您最终会拥有多个具有相同 ID 的元素。

标签: jquery jquery-ui


【解决方案1】:

这是因为 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 2013-01-26
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多