簡體   English   中英

HTML / Javascript:顯示:無復制和粘貼問題

[英]HTML/Javascript: Display:none copy and paste issue

我已經閱讀了許多有關此主題的文章,但沒有找到適合我的特殊情況的解決方案。 也許沒有,但我想我會問。

我有一個從Powershell腳本以HTML生成的報告,該報告被轉儲到服務器上的文件夾中(不是WEBSERVER,因此沒有PHP或任何可用的有趣東西)

然后可以按錯誤類型或信息過濾報告。 這是通過display:none進行的,不管它們是tr還是div。

這些過濾器可以隱藏各種事物,從而使不同元素的數百種可能組合成為可能。 所以移動它們或使用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--
            }
        }
  }

首次應用任何過濾器時,請將頁面中的所有HTML元素復制到文檔片段對象中,在此處操縱其可見性,然后僅將可見對象復制回DOM中。 更改過濾器應用於片段,然后復制回去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM