jQuery动态元素已创建但无法获取动态元素的句柄

时间:2010-10-08 10:55:03

标签: jquery

在下面的代码中,我循环遍历每个XML并创建动态内容。

$('#instDiv').append( "<div><b>" + 
$(this).attr('institute') + "</b></div>" + 
"<div>Type: " + $(this).find('type').text() + 
"</div>" + "<div>Name:</div>" + 
"<div onClick=\"showDiv('inst"+idCounter+"');\"><b>" + $(this).find('RM').text() + 
"</b></div>" + "<span id=\"inst"+idCounter+"\" >" + 
"<table><tr><td rowspan=3><img height=50 width=40 src='imgurl'></img></td><td>Phone#: " + $(this).find('ph').text() + "</td></tr>" + 
"<tr><td>Email: " + $(this).find('mail').text() + 
"</td></tr>" + "<tr><td>Location: " + $(this).find('loc').text() + 
"</td></tr></table></span>" );

单击名称调用showDiv函数。创建一个id为inst&amp;的跨度计数器。

因此对于第一个元素,id为inst0

showDiv功能代码如下所示。

function showDiv(divID) {
 alert(divID);
 alert($('#instDiv').html());
 alert($(divID).length);
 $(divID).toggle(); 
}

在上面的代码中,我可以获得divID值&amp; innerHTML的{​​{1}}也打印具有相同ID的范围。

但是,当我尝试打印instDiv长度时,它返回 0 。这意味着,没有具有该ID的元素。在我们的示例中,id为divID。但是,这存在于inst0 innerHTML中。

如何获得该元素的访问权限。我需要在点击名称时切换显示。

1 个答案:

答案 0 :(得分:0)

如果您通过ID属性选择,jQuery选择器应该是#inst0而不仅仅是inst0,所以预先设置一个像这样的哈希/井符号:

function showDiv(divID) {
   alert($('#' + divID).length);
   $('#' + divID).toggle(); 
}