Javascript只显示一行(记录集),而不是多行

Javascript只显示一行(记录集),而不是多行,javascript,html,asp-classic,recordset,Javascript,Html,Asp Classic,Recordset,我试图显示来自记录集的整个行表,但它只显示一条记录。请帮忙。我知道我遗漏了什么,但不确定是什么 提前谢谢 Do Until rs.eof = True response.write("<tr id='testable' style='display:none;'>") response.write("<td width='10%' align='left'>") response.write(rs(0)) response.wri

我试图显示来自记录集的整个行表,但它只显示一条记录。请帮忙。我知道我遗漏了什么,但不确定是什么

提前谢谢


    Do Until rs.eof = True
    response.write("<tr id='testable' style='display:none;'>")
    response.write("<td width='10%' align='left'>")
    response.write(rs(0))
    response.write("</td>")
    response.write("<td>")
    response.write(rs(1))
    response.write("</td>")
    response.write("</tr>")
    response.write(vbcrlf)
    rs.MoveNext
    response.write(vbcrlf) 
    Loop
立即显示:

 123 abc
显示需要:

123 abc
456 pqr
789 xyz

你写的每一行都有它的
display:none
,并且具有相同的
id

当这个JavaScript运行时:
document.getElementById(“可测试”)
,只找到具有
id
的第一个元素,因此只有第一个元素的
display
更改为
show

ID在网页中必须是唯一的,因此不要给每一行赋予相同的ID。取而代之的是,考虑给他们所有的相同的代码<代码>类< /代码>(这是允许的)。然后,您的JavaScript可以循环遍历所有代码,并更改它们的
显示,如下所示:

// Assume that each <tr> has a class of row

let rows = document.querySelectorAll(".row");

rows.forEach(function(row){
  row.style.display = (row.style.display = "hidden") ? "block" : "hidden";
});
//假设每个都有一类行
让rows=document.queryselectoral(“.row”);
rows.forEach(函数(行){
row.style.display=(row.style.display=“隐藏”)?“块”:“隐藏”;
});

扩展@Scott Marcus的回答。在使用类时,考虑将结果ID添加到TR ID以使它们具有唯一性。

response.write("<tr id='testable-" & rs(0) & "' style='display:none;'>")

您可以在此处阅读有关隐藏的更多信息:

谢谢您,先生,您必须相应地编辑代码的其余部分。但是解决了我的问题!事实上,这不是个好主意。完全远离ID是最好的方法。ID使解决方案更加脆弱(如此问题所示)。此外,它们还提供了更具体的CSS选择器,在需要时更难覆盖(同样更脆弱)。您可以添加选择器,以ID以testable开头的所有行为目标,使用jquery完成相同的工作。示例:$($(tr[id*='testable-'])这样,您可以根据需要同时拥有一个特定的行选择器,并将它们全部设置为目标。是的,但关键是不要拥有特定的选择器。你会发现,保持事物的非特定性会创造出最灵活的解决方案。正如您在我的回答中所看到的,让所有行都有一个简单的
类,可以很容易地解决这个问题。解决这个问题的方法有很多,因此在不知道具体情况的情况下,很难说哪一个是最好的,但是,您可以将
数据-*
属性附加到HTML元素,然后使用这些属性来筛选正确的元素,您可以使用CSS
第n个子项
第n个类型
第一个子项
最后一个子项
选择器。您可以使用CSS类和/或元素/扇区/位置的组合。实际上,可以使用这些技术的几十种组合,所有这些组合都不需要
id
s。我将阅读更多关于
data-*
属性的内容。看起来很有趣而且很灵活!
$("tr[id*='testable-']").hide();
$("tr[id*='testable-']").show();