Javascript 打印时,将元素设置为“内联显示”,该元素设置为“无”

Javascript 打印时,将元素设置为“内联显示”,该元素设置为“无”,javascript,css,dom,Javascript,Css,Dom,我有一个表,它最初在列中隐藏一些(历史)数据。 打印表格时,会打印隐藏的数据。这很好。 当我单击历史记录列中的show history链接时,表将展开并显示隐藏的数据。如果我打印这个视图,我会得到隐藏的数据。这也是需要的。 但是,当我单击隐藏历史记录链接然后打印时,我不会得到隐藏的数据。这不好 这是我的showHide javascript function showHide(shID) { if (document.getElementById(shID)) { if (document.

我有一个表,它最初在列中隐藏一些(历史)数据。 打印表格时,会打印隐藏的数据。这很好。 当我单击历史记录列中的
show history
链接时,表将展开并显示隐藏的数据。如果我打印这个视图,我会得到隐藏的数据。这也是需要的。 但是,当我单击
隐藏历史记录
链接然后打印时,我不会得到隐藏的数据。这不好

这是我的showHide javascript

function showHide(shID) {
if (document.getElementById(shID)) {
  if (document.getElementById(shID+'-show').style.display != 'none') {
     document.getElementById(shID+'-show').style.display = 'none';
     document.getElementById(shID).style.display = 'block';
  }
  else {
     document.getElementById(shID+'-show').style.display = 'inline';
     document.getElementById(shID).style.display = 'none';
  }
}
} 
在我的jsp中:

 <a href="#" id="cID${comment.comment_id}-show" class="showLink" onclick="showHide('cID${comment.comment_id}');return false;">show history</a>

<TBODY id="cID${comment.comment_id}" class="more">
 .... hidden content
 <a href="#" id="cID${comment.comment_id}-hide" class="hideLink" onclick="showHide('cID${comment.comment_id}');return false;">hide history</a>
 </TBODY>
StylePrint.css(尝试设置TBODY样式的尝试和其他尝试均无效)


JavaScript将以内联方式设置(隐藏/显示)元素的样式。拥有两个css文件,分别带有
media=“screen”
media=“print”
,将不会产生任何效果

您需要(在“屏幕”css中):


。。。使用JS,改为更改元素的类(添加/删除“show”)。

因为您正在更改
。更多
的内联样式改为
显示:无
,那么该样式比
StylePrint.css
中定义的样式更具特殊性。也就是说,您不能用
StylePrint.css
中的声明覆盖内联样式

要修复:

尝试使用
document.getElementById(shID).style.display=''从
中删除内联样式。更多


这将默认
.more
返回到
隐藏状态,并允许您在打印模式下使用
StylePrint.css
覆盖隐藏状态。

如何以及在何处加载
StylePrint.css
?只是一个猜测,但是如果您已经将
.more
的内联样式更改为
显示:none
,那么您应该在主CSS之后加载它,并使用以下
也可以加载它。然后,该样式将比
StylePrint.CSS
中定义的样式更具特殊性。尝试使用
document.getElementById(shID).style.display=''从
中删除内联样式。更多
隐藏时。将我的js更改为document.getElementById(shID.style.display='';(将“无”更改为“”)成功。我还从StylePrint.css中删除了.more。我如何标记一个被接受的答案?我添加了上述评论作为答案。很高兴它起作用了。这可能会起作用,但我试着把上面我的评论中所说的“无”改为“无”,这很有效。
.more {
  display: none;
}
.more {
  display: block;
}
.more {
    display: none;
}

.more.show {
    display: block;
}