1

いくつかの行があるテーブルがあり、その上の行のフィールドが空白でない場合、各行が表示されます。動作するスクリプトを作成しましたが、Javascriptを初めて使用するため、複雑すぎるように感じます。言い換えれば、この問題に対するより良い、より簡潔な解決策はありますか?複数の場所で同じソリューションを実行する必要があるため、より良いソリューションを歓迎します。

<script language="javascript">
   function MyTableRow(){
    //Row 1
 if(document.getElementById("DQ23I1010").value=="") 
  {
    //alert("test");
    document.getElementById("myRow1").style.display='none';
}
else
{
    document.getElementById("myRow1").style.display='block';   
}

 //Row 2
if(document.getElementById("DQ24I1011").value=="") 
  {
    document.getElementById("myRow2").style.display='none';
}
else
{
    document.getElementById("myRow2").style.display='block';   
}
//Row 3
if(document.getElementById("DQ25I1012").value=="") 
{
    document.getElementById("myRow3").style.display='none';
}
else
{
    document.getElementById("myRow3").style.display='block';   
}
//Row 4
if(document.getElementById("DQ26I1013").value=="") 
{
    document.getElementById("myRow4").style.display='none';
 }
else
{
    document.getElementById("myRow4").style.display='block';   
}
//Row 5
   if(document.getElementById("DQ27I1014").value=="") 
{
    document.getElementById("myRow5").style.display='none';
}
else
{
    document.getElementById("myRow5").style.display='block';   
}
//Row 6
if(document.getElementById("DQ28I1015").value=="") 
{
    document.getElementById("myRow6").style.display='none';
}
else
{
    document.getElementById("myRow6").style.display='block';   
}
//Row 7
if(document.getElementById("DQ29I1016").value=="") 
{
    document.getElementById("myRow7").style.display='none';
}
else
{
    document.getElementById("myRow7").style.display='block';   
}
 //Row 8
 if(document.getElementById("DQ30I1017").value=="") 
{
    document.getElementById("myRow8").style.display='none';
}
else
{
    document.getElementById("myRow8").style.display='block';   
}
  //Row 9
if(document.getElementById("DQ31I1018").value=="") 
{
    document.getElementById("myRow9").style.display='none';
}
else
{
    document.getElementById("myRow9").style.display='block';   
}
 //Row 10
 if(document.getElementById("DQ32I1019").value=="") 
{
    document.getElementById("myRow10").style.display='none';
}
else
{
    document.getElementById("myRow10").style.display='block';   
}
} 

</script>
4

2 に答える 2

5

はい、簡単に短縮できます...

function MyTableRow() {
   for (var i = 1; i <= 10; i++) {
       var row = document.getElementById("myRow" + i);
       if (document.getElementById("DQ" + (22 + i) + "I10" + (i + 9)).value == "")
           row.style.display = 'none';
       else
           row.style.display = '';  
   }
}

これよりもさらに良い解決策があるかもしれませんが、より多くの情報が必要です。

于 2012-04-22T23:14:05.417 に答える
0

jqueryはそのようなことをするのに役立つと思います。行クラスをclass="row"に設定してください

<table>
    <tr class="row">
        <td></td>
    </tr>
    <tr class="row">
        <td></td>
    </tr>
</table>

次に、コードは次のようになります。

var showRow = true;
$(".row").each(function(index){
    if (!showRow) {
        $(this).css("display", "none");
    }
    if ($this.find(".dataItem").val() == "") {
        showRow = false;
    }
});
于 2012-04-22T23:06:32.567 に答える