2010-10-08 99 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