2016-12-03 5 views
0

を削除します。私は以下のスクリプト持っている余分なセル空間

var cells = [].slice.call(document.querySelectorAll("#myTable td")); 
 
    var search = document.getElementById("myInput"); 
 
    
 
    search.addEventListener("keyup", function() { 
 
     cells.forEach(function(cell) { 
 
      if (!search.value.trim()) { 
 
       cell.style.background = "white"; 
 
       cell.style.display = 'table-cell'; 
 
      } else if (cell.textContent.toLowerCase().indexOf(search.value.toLowerCase()) == 0) { 
 
       cell.style.background = 'yellow'; 
 
       cell.style.display = "table-cell"; 
 
      } else { 
 
       cell.style.background = "white"; 
 
       cell.style.display = 'none'; 
 
      } 
 
     }); 
 
    });
<input id='myInput' type='text'> 
 

 
<table id='myTable'> 
 
            
 
            <tr> 
 
    \t \t \t \t \t \t \t \t \t <td>a</td> 
 
             <td>ab</td> 
 
             <td>abs</td> 
 
             <td>ador</td> 
 
             <td>turous</td> 
 
             <td>acac</td> 
 
             <td>accle</td> 
 
    \t \t \t \t \t \t \t \t \t </tr> 
 
    \t \t \t \t \t \t \t \t \t <tr> 
 
            \t <td>ed</td> 
 
             <td>aced</td> 
 
             <td>ate</td> 
 
             <td>acg</td> 
 
             <td>aci</td> 
 
             <td>atic</td> 
 
             <td>ive</td> 
 
\t \t \t \t \t \t \t \t \t </tr> 
 
            <tr> 
 
             \t <td>l</td> 
 
             <td>pt</td> 
 
             <td>able</td> 
 
             <td>ad</td> 
 
             <td>adoent</td> 
 
             <td>ble</td> 
 
             <td>d</td> 
 
            </tr> 
 
            <tr> 
 
            \t <td>ed</td> 
 
             <td>a</td> 
 
             <td>aate</td> 
 
             <td>a</td> 
 
             <td>aavating</td> 
 
             <td>aive</td> 
 
             <td>a</td> 
 
\t \t \t \t \t \t \t \t \t </tr> 
 
            <tr> 
 
            \t <td>d</td> 
 
             <td>ng</td> 
 
             <td>eable</td> 
 
             <td></td> 
 
             <td>alarmed</td> 
 
             <td>ming</td> 
 
             <td>t</td> 
 
            </tr> 
 
            <tr> 
 
             \t <td>ted</td> 
 
             <td>ae</td> 
 
             <td>all</td> 
 
             <td>agjhistic</td> 
 
             <td>akjhkjg</td> 
 
             <td>hjious</td> 
 
             <td>ample</td> 
 
            </tr> 
 
            <tr> 
 
            \t <td>hjbsed</td> 
 
             <td>ahkjng</td> 
 
             <td>anhjkd</td> 
 
             <td>ahjhnt</td> 
 
             <td>ahjkjc</td> 
 
             <td>a</td> 
 
             <td>hjhed</td> 
 
\t \t \t \t \t \t \t \t \t </tr> 
 
            <tr> 
 
            \t <td>aghjed</td> 
 
             <td>hjjal</td> 
 
             <td>ghjmher</td> 
 
             <td>amjhkiue</td> 
 
             <td>ahkjus</td> 
 
             <td>any</td> 
 
             <td>ahmkjehensive</td> 
 
            </tr> 
 
            <tr> 
 
             \t <td>ajhjkjiate</td> 
 
             <td>ahkjpt</td> 
 
             <td>arctic</td> 
 
             <td>arid</td> 
 
             <td>aromatic</td> 
 
             <td>artistic</td> 
 
             <td>ashamed</td> 
 
            </tr> 
 
            <tr> 
 
             <td>assured</td> 
 
             <td>astonishing</td> 
 
             <td>athletic</td> 
 
             <td>attached</td> 
 
             <td>attentive</td> 
 
             <td>atkjkjactive</td> 
 
             <td>ahghbtere</td> 
 
            </tr> 
 
            <tr> 
 
            \t <td>bhkuhish</td> 
 
             <td>hkjh</td> 
 
             <td>bhkre</td> 
 
             <td>barren</td> 
 
             <td>basic</td> 
 
            </tr> 
 
            <tr> 
 
            \t <td>befsgdfgful</td> 
 
             <td>bdsfsdfed</td> 
 
             <td>dsfsdfved</td> 
 
             <td>bedsfsfcial</td> 
 
             <td>better</td> 
 
             <td>best</td> 
 
             <td>bdfsfitched</td> 
 
            </tr> 
 
</table>

は、私はHTMLのテーブルでテキストを検索するため、このスクリプトを使用します。それは100行5列などのような500以上のセルを持っています。このスクリプトは、短いテーブル内のテキストを見つけるためにはうまく動作しますが、もし私が500以上の長いテーブルを持っているなら、細胞。

ここでは\s/gのような正規表現を使用しようとしましたが、動作しません。間違った場所に挿入することがあります。また、多くの他のスタイルとcell.style.display = "table-cell";を変更しようとしましたが、動作しません。

500個以上のセルがあり、その意味が何であるのかがわかっていれば、行と列のギャップがなくても出力を正しく得るためには、

+0

uは親切にそれをチェックして、あなたは私が – Viney

+0

を理解することができません画面を投稿することができますあなたの 'table'要素のためのCSSの' border-collapse:collapse; 'これをCSSに追加すると、JavaScriptの要素から追加/削除することはできません。より特定のセレクタがそれを上書きしない限り、自動的に適用されます。 –

+0

セットを削除したいもののギャップを理解するなら、私に知らせて、私はちょうどテーブルでそれを更新し、私ははっきり –

答えて

0

お試しください! =)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text" class="input"/> 
 
<div class="print"></div> 
 

 
<script> 
 
var data = ['food', 'bar', 'google']; // your data 
 

 
var fx = function(text) { 
 
    var print = function(list,s) { 
 
     var table = $('<table/>').css('width','100%'); 
 
     var x = 0; 
 
     while (list[x]) { 
 
      var tr = $('<tr/>'); 
 
      while (list[x] && x < 5) { 
 
      \t var td = $('<td/>').text(list[x]) 
 
      \t if(s == list[x]){ 
 
      \t \t td.css('background','red'); 
 
      \t } 
 
       tr.append(td); 
 
       x++; 
 
      } 
 
      table.append(tr); 
 
     } 
 
     $('.print').html(table); 
 
    } 
 

 
    if (typeof text === "undefined") { 
 
     print(data, ''); 
 
    } else { 
 
     var find = []; 
 

 
     for (var i = 0; data[i]; i++) { 
 
      if (data[i].toLowerCase().indexOf(text.toLowerCase()) == 0) find[find.length] = data[i]; 
 
     } 
 

 
     print(find,text); 
 
    } 
 
} 
 

 
$(function() { 
 
    $('.input').keyup(function() { 
 
     fx($(this).val()); 
 
    }); 
 
    fx(); 
 
}); 
 
</script>

関連する問題