我已阅读有关此主题的许多帖子,但尚未找到针对我的特定情况的解决方案。也许没有,但我想我会问。
我有一个从 powershell 脚本以 HTML 格式生成的报告,它被转储到服务器上的文件夹(不是 WEBSERVER,所以没有 PHP 或任何有趣的东西可用)
然后可以按错误类型或信息过滤报告。这是通过 display:none 各种元素来完成的,无论它们是 tr 还是 div .. 下面的 Javascript
这些过滤器可以隐藏各种事物,使数百种不同元素的可能组合成为可能。所以移动它们或使用 DOM 删除和创建它们会很粗糙,因为我不知道如何告诉它把元素放回哪里。
我需要这样做,以便可以复制粘贴过滤后的报告以通过电子邮件发送出去。有任何想法吗?
function showhide(button) {
if (button.value == 'hide') {
var arr = document.getElementsByName(button.name +'tr');
var length = arr.length;
for (var i = 0; i < length; i++) {
arr[i].style.display = 'none';
}
document.getElementById(button.name +'div').innerHTML = "<a href='javascript:void(0)' onclick='showhide(this)' name='" + button.name + "' value='show'>Show " + button.name + "</a>";
}
else if (button.value == 'show') {
document.getElementById(button.name +'div').innerHTML = "<a href='javascript:void(0)' onclick='showhide(this)' name='" + button.name + "' value='hide'>Hide " + button.name + "</a>";
var arr = document.getElementsByName(button.name +'tr');
var length = arr.length;
for (var i = 0; i < length; i++) {
arr[i].style.display = '';
}
}
}
解决方案:
function showhide(button) {
var seeMe = document.getElementById('visible');
seeMe.innerHTML = ' ';
if (button.value == 'hide') {
var arr = document.getElementsByName(button.name +'tr');
var length = arr.length;
for (var i = 0; i < length; i++) {
arr[i].style.display = 'none';
arr[i].name = 'h';
}
document.getElementById(button.name +'div').innerHTML = "<a href='javascript:void(0)' onclick='showhide(this)' name='" + button.name + "' value='show'>Show " + button.name + "</a>";
}
else if (button.value == 'show') {
document.getElementById(button.name +'div').innerHTML = "<a href='javascript:void(0)' onclick='showhide(this)' name='" + button.name + "' value='hide'>Hide " + button.name + "</a>";
var arr = document.getElementsByName(button.name +'tr');
var length = arr.length;
for (var i = 0; i < length; i++) {
arr[i].style.display = '';
arr[i].name = 's';
}
}
var search = document.getElementById('hidden').children;
for(var i = 0; i < search.length; i++) {
seeMe.appendChild(search[i].cloneNode(true));
}
var paras = document.getElementById('visible').getElementsByTagName('*');
for(var i = 0; i < paras.length; i++) {
if (paras[i].name == 'h') {
paras[i].parentNode.removeChild(paras[i]);
i--
}
}
}