使用Jquery,JavaScript将新的<select>添加到表行

时间:2017-11-27 04:03:14

标签: javascript jquery html

这是图像 我是这个网页设计的新手,我想放一个可以在桌面上放一个新行的按钮。它有效,但尝试添加&lt; select&gt;标签也是如此,但我不知道这么做的知识。似乎type ='select'是绝对错误的。 那我怎么能把&lt; select&gt;标记到新行而不仅仅是文本? &LT;脚本&GT;   $(document).ready(function(){   var i = 1;   $(“#add_row”)。click(function(){   $( 'TR')找到( '输入')丙( '禁用',真正的)。     $('#nmr'+ i).html(“&lt; td&gt;”+(i + 1) +“&lt; / td&gt;&lt; td&gt;&lt; input type ='select'name ='shiftid”+ i +“'class ='form-control input-md'/&gt;&lt; / td&gt;&lt; td&gt;&lt; input type ='select'name ='breakid”+ i +“&lt; / td&gt;&lt; td&gt;&lt; input type ='number'name ='naturasa”+ i +“'class ='form-control input-md'/&gt;&lt; / td&gt;&lt; td&gt;&lt; input type ='number'name ='naturapu”+ i +“'class ='form-control input-md'/&gt;&lt; / td&gt;&lt; td&gt;&lt; input type ='number'name ='makannorm”+ i +“'class ='form-control input-md'/&gt;&lt; / td&gt;&lt; td&gt;&lt; input type ='number'name ='ttal”+ i +“'class ='form-control input-md'/&gt;&lt; / td&gt;”);     $('#tab_logic')。append('&lt; tr id =“nmr'+(i + 1)+'”&gt;&lt; / tr&gt;');     我++;   }); }); &lt; div id =“datatable”class =“container”&gt;   &lt; h2&gt;数据输入&lt; / h2&gt;   &lt; table class =“table table-condensed”id =“tab_logic”&gt;     &LT; THEAD&GT;       &LT; TR&GT;         &LT的第i;#&LT; /第&GT;         &LT的第i;移&LT; /第&GT;         &lt; th&gt; Jam Istirahat&lt; / th&gt; &lt; th&gt; Natura Sakit&lt; / th&gt; &lt; th&gt; Natura Puasa&lt; / th&gt; &lt; th&gt; Makan Normal&lt; / th&gt; &LT的第i;总计&LT; /第&GT;       &LT; / TR&GT;     &LT; / THEAD&GT;     &LT; TBODY&GT;       &lt; tr id =“nmr0”&gt;         &LT; TD&GT; 1 &LT; / TD&GT;         &LT; TD&GT; &lt; select name =“shiftid”class =“form-control”&gt; &lt;选项已禁用=“已禁用”值=“”&gt; - 选择选项 - &lt; /选项&gt; &lt; option value =“NormalShift”&gt; Normal Shift&lt; / option&gt; &lt; option value =“Long Shift”&gt; Long Shift&lt; / option&gt; &LT; /选择&GT; &LT; / TD&GT;         &LT; TD&GT; &lt; select name =“breakid”class =“form-control”&gt; &lt;选项已禁用=“已禁用”值=“”&gt; - 选择选项 - &lt; /选项&gt; &lt; option value =“break1”&gt; 11.45-12.15&lt; / option&gt; &lt; option value =“break2”&gt; 20.30-21.00&lt; / option&gt; &lt; option value =“break3”&gt; 18.00-18.45&lt; / option&gt; &lt; option value =“break4”&gt; 00.00-00.30&lt; / option&gt; &lt; option value =“break5”&gt; 07.00-07.30&lt; / option&gt; &LT; /选择&GT; &LT; / TD&GT; &LT; TD&GT; &lt; input id =“nomore”type =“number”min =“0”name =“naturasa”class =“form-control”&gt; &LT; / TD&GT;         &LT; TD&GT; &lt; input id =“nomore”type =“number”min =“0”name =“naturapu”class =“form-control”&gt; &LT; / TD&GT;         &LT; TD&GT; &lt; input id =“nomore”type =“number”min =“0”name =“makannorm”class =“form-control”&gt; &LT; / TD&GT; &LT; TD&GT; &lt; input id =“nomore”type =“number”min =“0”name =“ttal”class =“form-control”&gt; &LT; / TD&GT;       &LT; / TR&GT; &lt; tr id ='nmr1'&gt;&lt; / tr&gt;     &LT; / tbody的&GT;   &LT; /表&gt;&LT p为H.;&LT; / p为H.   &lt; input type =“submit”id =“add_row”class =“btn btn-primary btn-lg pull-left”value =“Add Order”&gt;   &lt; input type =“submit”id =“removedata”value =“删除订单”&gt; &LT; / DIV&GT;

2 个答案:

答案 0 :(得分:3)

您可以使用jquery clone复制第一个表格行,然后将其附加到表格底部。

您可以使用

找到表格的最后一行
 var $lastTr = $('.classoftable tr').eq(1);

然后使用

克隆表格的最后一行
 var $clone = $lastTr.clone();

现在使用

将此克隆行附加到表中
 $clone.appendTo('.classoftable');

您还可以使用

突出显示新添加的行
 $clone.effect("highlight", {
            color: "#3c8dbc"
        }, 2000);

供参考使用此jsfiddle

答案 1 :(得分:0)

  • 首先, #id必须是唯一的,此规则没有例外。四个<input>都具有相同的<input id=&#34; <删除>曲子&#34; ... >。它们已被重新分配为id="A0"id="B0"id="C0"id="D0"

  • 使用简单的JavaScript方法取代.html(... insertAdjacentHTML() .html()完全相同,只是它插入而不是覆盖。

  • 删除了不必要的空<tr>

  • 移动i++,在添加行之前递增

  • 使用 Template Literals 作为字符串,这使得该过程变得更加容易(请注意,您不必每次都添加大量+换行)

  • 注意$('tbody')[0]括号表示法取消引用jQuery对象以在其上使用简单的JavaScript方法(即insertAdjacentHTML()

  • 添加了<select>的正确HTML以及增量i变量的正确插值

演示

&#13;
&#13;
$(document).ready(function() {
      var i = 0;
      $("#add_row").click(function() {
            i++;
            $('tbody')[0].insertAdjacentHTML('beforeend', `      
            <tr id="nmr${i}">
        <td>${i+1}</td>
        <td>
			<select name="shiftid" class="form-control">
				<option selected disabled value="">
        -Select An Option-
        </option>
				<option value="Normal Shift">Normal Shift
        </option>
				<option value="Long Shift">
        Long Shift
        </option>
			</select>
		</td>
        <td>
			<select name="breakid" class="form-control">
				<option selected disabled value="">
        -Select An Option-
        </option>
				<option value="break1">
        11.45-12.15
        </option>
				<option value="break2">
        20.30-21.00
        </option>
				<option value="break3">
        18.00-18.45
        </option>
				<option value="break4">
        00.00-00.30
        </option>
				<option value="break5">
        07.00-07.30
        </option>
			</select>
		</td>
		<td>
			<input id="A${i}" type="number" min="0" name="naturasa" class="form-control">
		</td>
        <td>
			<input id="B${i}" type="number" min="0" name="naturapu" class="form-control">
		</td>
        <td>
			<input id="C${i}" type="number" min="0" name="makannorm" class="form-control">
		</td>
		<td>
			<input id="D${i}" type="number" min="0" name="ttal" class="form-control">
		</td>
      </tr>`);
      });
      });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="datatable" class="container">
  <h2>Data Input</h2>
  <table class="table table-condensed" id="tab_logic">
    <thead>
      <tr>
        <th>#</th>
        <th>Shift</th>
        <th>Jam Istirahat</th>
        <th>Natura Sakit</th>
        <th>Natura Puasa</th>
        <th>Makan Normal</th>
        <th>Total</th>
      </tr>
    </thead>
    <tbody>
      <tr id="nmr0">
        <td>
          1
        </td>
        <td>
          <select name="shiftid" class="form-control">
				<option selected disabled value="">-Select An Option-</option>
				<option value="Normal Shift">Normal Shift</option>
				<option value="Long Shift">Long Shift</option>
			</select>
        </td>
        <td>
          <select name="breakid" class="form-control">
				<option selected disabled value="">-Select An Option-</option>
				<option value="break1">11.45-12.15</option>
				<option value="break2">20.30-21.00</option>
				<option value="break3">18.00-18.45</option>
				<option value="break4">00.00-00.30</option>
				<option value="break5">07.00-07.30</option>
			</select>
        </td>
        <td>
          <input id="A0" type="number" min="0" name="naturasa" class="form-control">
        </td>
        <td>
          <input id="B0" type="number" min="0" name="naturapu" class="form-control">
        </td>
        <td>
          <input id="C0" type="number" min="0" name="makannorm" class="form-control">
        </td>
        <td>
          <input id="D0" type="number" min="0" name="ttal" class="form-control">
        </td>
      </tr>

    </tbody>
  </table>
  <p></p>
  <input type="submit" id="add_row" class="btn btn-primary btn-lg pull-left" value="Add Order">
  <input type="submit" id="removedata" value="Remove Order">
</div>
&#13;
&#13;
&#13;