在javascript中显示/隐藏html内容
我有来自后端的响应。现在我想创建一些链接,如果我单击这些链接,它应该会在该链接下面显示html内容,如果我再次单击该链接,这些html内容应该会消失。我知道jquery的hide()和show()。但是这里我使用for循环,我找不到DOM元素, 如下:在javascript中显示/隐藏html内容,javascript,jquery,Javascript,Jquery,我有来自后端的响应。现在我想创建一些链接,如果我单击这些链接,它应该会在该链接下面显示html内容,如果我再次单击该链接,这些html内容应该会消失。我知道jquery的hide()和show()。但是这里我使用for循环,我找不到DOM元素, 如下: var html = "<div id=finalDiv></div>"; $("#finalDiv").dialog(); var ht; for(var i in response) { ht +="<tab
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);
var html=”“;
$(“#finalDiv”).dialog();
var-ht;
用于(var i响应){
ht+=“A:”+响应[i]。A+”;
ht+=”;
}
$(“#finalDiv”)。追加(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);
}
功能showOneLink(B,i){
var htm=“log:”+B+”;
$(“#show”+i+“Link”).css('display','block');
$(#show“+i+”Link”).append(htm);
}
选择器是字符串,请关闭“”
比如$(“show”+i+“Link”)代码>
或孔代码:
function showOneLink(B,i) {
var htm = "<b>log:'"+B+"'</b>";
$("#show"+i+"Link").css('display','block');
$("#show"+i+"Link").append(ht);
}
问题在于此id属性:
id=show'"+i+"'Link
这将生成无效的HTML:id=show'5'链接
将其更改为:
ht += "<tr><td><div id='show"+i+"Link' style='dislay:none;'></div></td></tr></table>";
请调试您的代码。您的上一个代码块中有多个未终止的字符串:(“#show”+i+”链接
)不,这不是问题所在。我已更正为是,我明白了。.toggle()
下面发布的建议应该有效。不..这不是这里的错误..我更正了它..但我想回答我的问题..如何在没有dom对象的情况下切换for循环?这是问题所在。您找不到dom元素,因为它的ID无效。@SSS,如果您更正了它,那么您应该用新的cod更新您的问题e、 @SSS,我同意MrCode在创建元素时应该更改id:您的id无效。
ht += "<tr><td><div id='show"+i+"Link' style='dislay:none;'></div></td></tr></table>";
$("#show"+i+"Link").toggle();