2010-10-08 102 views
0

在下面的代码中,我循环遍历每个XML并创建动态内容。jQuery动态元素已创建,但无法获取动态元素的句柄

$('#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创建一个跨度为&计数器。

因此,对于第一个元素,ID将是inst0

showDiv功能码如下所示。

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

在上面的代码,我能够得到divIDinstDiv & innerHTML还印刷有相同ID的跨度。

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

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

回答

0

jQuery的选择应该是#inst0而不仅仅是inst0,如果你是ID属性选择,所以在前面加上这样一个哈希/英镑的象征:

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

哦......是的......我不不知道,我怎么忘了这个:P非常感谢... – Raghu 2010-10-10 16:28:18