2012-11-27 157 views
0

我有迴應來自後端。現在我想創建一些鏈接,如果我點擊這些鏈接,它應該顯示該鏈接下的HTML內容,如果我再次單擊該鏈接,那些HTML內容應該去。我知道jquery hide()和show()。但是在這裏我使用for循環和如下我不能夠找到DOM元素, ,在javascript中顯示/隱藏html內容

var html = "<div id=finalDiv></div>"; 
$("#finalDiv").dialog(); 
var ht; 
for(var i in response) { 
    ht +="<table><tr><td><label>A:</label></td><td><a onclick=\"showOneLink('"+response[i].B+"','"+i+"')\" >'"+response[i].A+"'</a></td></tr>"; 
    ht += "<tr><td><div id=show'"+i+"'Link style='dislay:none;'></div></td></tr></table>"; 
} 
$("#finalDiv").append(ht); 

現在,當我點擊showOneLink,隱藏的div應該顯示但div的DOM將不會被創建。至於,

function showOneLink(B,i) { 
    var htm = "<b>log:'"+B+"'</b>"; 
    $("#show"+i+"Link").css('display','block'); 
    $("#show"+i+"Link").append(htm); 
} 
+0

請調試你的代碼。 你的最後一個代碼塊中有多個未終止的字符串:(''#show「+ i +」Link') – Cerbrus

+0

不,這不是問題,我糾正了它 – SSS

+1

啊,是的,我明白了'.toggle() – Cerbrus

回答

0

選擇器是字符串,關閉 「」

$("#show"+i+"Link");

或孔代碼:

function showOneLink(B,i) { 
    var htm = "<b>log:'"+B+"'</b>"; 
    $("#show"+i+"Link").css('display','block'); 
    $("#show"+i+"Link").append(ht); 
} 

,並更好地利用切換:

$("#show"+i+"Link").append(ht); 
    $("#show"+i+"Link").toggle(); 
1

Th E題是這樣的id屬性:

id=show'"+i+"'Link 

這將產生無效的HTML:id=show'5'Link

將其更改爲:

ht += "<tr><td><div id='show"+i+"Link' style='dislay:none;'></div></td></tr></table>"; 

還可以使用toggle()代替css()

$("#show"+i+"Link").toggle(); 
+0

no ..這不是錯誤在這裏..我糾正它..但我想回答我的問題..如何切換沒有dom對象內循環? – SSS

+1

這是問題。你可以找不到DOM元素,因爲它有一個無效的ID – MrCode

+0

@SSS,如果你糾正了它,那麼你應該用新的代碼更新你的問題 – Supr