我有以下行結構作爲模板克隆它並將其添加到表中,每次用戶按下「添加」按鈕時,此模板被隱藏:如何在過濾器和選擇器中設置索引變量jquery
<tr class="plantilla">
<td>
<select class="cmb_arboles" id="cmb_arboles" name="arboles[]">
</select>
</td>
<td>
<input type="text" id="txttoneladas" name="txttoneladas[]"/>
</td>
<td>
<input type="text" id="txtprecio" name="txtprecio[]"/>
</td>
<td>
<select id="cmb_destino" name="destino[]">
</select>
</td>
<td class="eliminar_fila">
Eliminar
</td>
</tr>
當按下「添加」按鈕,調用:
$("#agregar").click(function()
{
nid++;
$("#plantilla tbody tr:eq(0)").clone().attr("id",nid).appendTo("#plantilla tbody");
$("#plantilla tbody tr:eq(nid)").find("td:eq(0)").find("select").attr("id","cmb_arboles_"+nid);
});
第一行,產生行數的順序。第二行將整個模板作爲表中的新行克隆,併爲其添加一個id = nid。 第三行,訪問該行並查找select以將nid順序添加到選擇標識,但這不起作用。進行多次測試時,我得出結論:問題是「tr:eq(nid)」不接受nid作爲變量,因爲當將nid更改爲特定整數(例如1)時,它會起作用,並將id添加到select中。這裏的問題是如何將nid作爲參數放在:eq()中,以便它能夠正確工作並執行我已經解釋的內容?
同樣的情況也發生在下面的代碼行:
$(document).on('change', '.cmb_arboles', function() {
var $select = $(this);
var $row = $select.closest('tr');
var idd = $row.attr('id');
var valor=$("#tabla tbody tr[id=idd]").find("td:eq(0)").find("select").val();
});
線1〜3,你在,你在選擇組件選擇的行號。 最後一行獲取所選擇的選擇的值,以及所選行號的信息,但這不起作用。在做幾次測試時,我得出結論,問題出在「tr [id = idd]」中,它不能正確處理變量「idd」。我做了一個測試,通過一個特定的整數來改變idd,例如1,然後我在id = 1的表中生成一個新行並且代碼行正常工作,返回select元素中選擇的選項。
有了這兩個例子,我想檢查是否有人可以告訴我如何在兩種情況下放置我提到的參數,以便正確執行功能並執行所期望的功能。
我將非常感激。
非常感謝@MelvinDavis對你的貢獻,它幫助我瞭解如何做好未曾奏效,感謝和祝福。 –