2013-10-17 60 views
0

我正在第一次使用Jquery,我應該使用Select標籤在表中生成一個表。由於這對我來說是新的,我已經嘗試過語法。到目前爲止,我想出了下面的代碼:使用Select來動態創建/刪除Jquery中的錶行

<select id="theSelect"> 
    <option value="foo">Foo</option> 
    <option value="bar">Bar</option> 
</select> 


<input id="someInput"/> 

<table id="mytable" border="1"> 
    <tr> 
     <th>AAAAA</th> 
     <th>BBBBB</th> 
    </tr> 
    <tr> 
     <td>CCCCC</td> 
     <td>DDDDD</td> 
    </tr> 
</table> 

<script> 
    $("#theSelect").change(function() { 
     switch($(this).val()) 
     { 
      case "foo": 
       $("#someInput").val("hello"); 
       $("#mytable").append($("#blarg")) 
       break; 
      case "bar": 
       $("#someInput").val("bye"); 
       //$("#mytable").remove($("#blarg")) 
       $("#mytable").append($("#blah")) 
       break; 
      default: 
       $("#someInput").val("really?"); 

      } 

     }).change(); 
    </script> 


    <div id="blarg"> 
    <tr><td>hello world</td><td></td></tr> 
    </div> 


    <div id="blah"> 
    <tr><td>goodbye world</td><td></td></tr> 
    </div> 

我得到的someInput框的值改變,我設法慢慢修改表中的值,但我還沒有想出如何只寫一次1行,具體取決於select標籤設置的值。當選擇foo時,我希望在表格中有blarg,當選中bar時,我會在表格中顯示blah。

回答

2

嘗試

<table id="blarg" style="display: none"> 
    <tr> 
     <td>hello world</td> 
     <td></td> 
    </tr> 
</table> 
<table id="blah" style="display: none"> 
    <tr> 
     <td>goodbye world</td> 
     <td></td> 
    </tr> 
</table> 

然後

$("#theSelect").change(function() { 
    var tr; 

    var $table = $("#mytable") 
    $table.find('.select').remove(); 
    switch ($(this).val()) { 
     case "foo": 
      $("#someInput").val("hello"); 
      tr = '#blarg'; 
      break; 
     case "bar": 
      $("#someInput").val("bye"); 
      tr = '#blah'; 
      break; 
     default: 
      $("#someInput").val("really?"); 

    } 
    if(tr){ 
     $(tr).find('tr').clone().addClass('select').appendTo($table); 
    } 

}).change(); 

演示:Fiddle

一個清潔的解決方案可以this

+0

十分感謝! 除了上面顯示的內容之外,我會如何讓「hello world」和「goodbye world」只出現在桌子內部,而不是出現在桌子外面? – Lestat

+0

@Lestat使用'style =「display:none」隱藏這些元素'' –

+0

@Lestat查看更新 –

相關問題