【发布时间】:2011-03-24 12:37:57
【问题描述】:
我准备一个模板 div 的克隆,为其分配一个动态 ID 并将其附加到 DOM,如下所示:-
var chat_window_clone_obj = $('div#chat_window_template').clone();
cloned_element_id = 'chat_window'+dom_id_separator+session_id;
$(chat_window_clone_obj).attr('id',cloned_element_id);
$(chat_window_clone_obj).appendTo("div#chat_windows_holder");
但是,在那之后我无法使用它的 ID 访问克隆的元素(在 firefox 中检查,我确信这在所有浏览器中都是相同的):-
$('div#chat_windows_holder').length // comes 0
$('div#chat_windows_holder').removeClass("hidden"); //does not work
但是我可以这样访问:-
$(chat_window_clone_obj).length // works
$(chat_window_clone_obj).removeClass("hidden"); //works
我在这里缺少什么?我可以在 Firefox 的 HTML 选项卡中看到正确附加了所需 ID 的元素。
【问题讨论】:
-
你为什么要把 chat_window_clone_obj 包装在 $() 中?
-
你不应该用
$()包裹chat_window_clone_obj,因为它会在你每次这样做时克隆对象。这意味着$(chat_window_clone_obj).attr('id',cloned_element_id);应该是chat_window_clone_obj.attr('id',cloned_element_id); -
谢谢@Tom 你能给出一些解释或一些解释的链接