[英]Jquery/JavaScript: How to append the data by column dynamically to each row in jquery?
[英]How to save the content of each column of a row in a jQuery array
我試圖從表的內容創建一個數組。 表的內容看起來像這樣:
<table>
<tr class="rowUpdate">
<td>Corredor Feed</td>
<td>Id Corrdor
<input type="text" value="" class="validate" name="idcorreo">
</td>
<td>Nombre
<input type="text" value="" class="validate" name="nombre">
</td>
<td>Email
<input type="text" value="foo@bar.com" class="validate" name="email">
</td>
<td>Empressa
<input type="text" value="" class="validate" name="Empressa">
</td>
<td>Pagina Web
<input type="text" value="" class="validate" name="paginaWeb">
</td>
<td>Telefono
<input type="text" value="" class="validate" name="telephon">
</td>
<td>Cellular
<input type="text" value="" class="validate" name="cellular" />
</td>
<td>
<input type="submit" id="guardarBtn" value="Save" name="submitme">
</td>
</tr>
</table>
我寫的腳本是這樣的
$(document).on('click', '#guardarBtn', function (event) {
var content=[];
$('.rowUpdate').each(function (i) {
$(this).find('td').each(function (j, v) {
if (j != 0) {
var input = $("input", this),
name = input.attr("name").substring(0, input.attr("name").length),
value = input.val();
alert(value);
content[name] = value;
alert(JSON.stringify(content));
}
});
//alert(content);
rows.push(content);
});
});
但是當我點擊按鈕獲取表格列的內容並將其保存在數組中時,它顯示為空白
更新的Js小提琴鏈接在這里
提前致謝
檢查一下。 我改變了var content = []; to var content = {};
$(document).on('click', '#guardarBtn', function (event) { var content= {}; $('.rowUpdate').each(function (i) { $(this).find('td').each(function (j, v) { if (j != 0) { var input = $("input", this), name = input.attr("name").substring(0, input.attr("name").length), value = input.val(); content[name] = value; // alert(JSON.stringify(content)); } }); alert(JSON.stringify(content)); // rows.push(content); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class="rowUpdate"> <td>Corredor Feed</td> <td>Id Corrdor <input type="text" value="" class="validate" name="idcorreo"> </td> <td>Nombre <input type="text" value="" class="validate" name="nombre"> </td> <td>Email <input type="text" value="foo@bar.com" class="validate" name="email"> </td> <td>Empressa <input type="text" value="" class="validate" name="Empressa"> </td> <td>Pagina Web <input type="text" value="" class="validate" name="paginaWeb"> </td> <td>Telefono <input type="text" value="" class="validate" name="telephon"> </td> <td>Cellular <input type="text" value="" class="validate" name="cellular" /> </td> <td> <input type="submit" id="guardarBtn" value="Save" name="submitme"> </td> </tr> </table>
嘗試這個 :
<form name="form_name" id='form_name'>
<table>
<tr class="rowUpdate">
<td>Corredor Feed</td>
<td>Id Corrdor
<input type="text" value="" class="validate" name="idcorreo">
</td>
<td>Nombre
<input type="text" value="" class="validate" name="nombre">
</td>
<td>Email
<input type="text" value="foo@bar.com" class="validate" name="email">
</td>
<td>Empressa
<input type="text" value="" class="validate" name="Empressa">
</td>
<td>Pagina Web
<input type="text" value="" class="validate" name="paginaWeb">
</td>
<td>Telefono
<input type="text" value="" class="validate" name="telephon">
</td>
<td>Cellular
<input type="text" value="" class="validate" name="cellular" />
</td>
<td>
<input type="submit" id="guardarBtn" value="Save" name="submitme">
</td>
</tr>
</table>
</form>
這里:
$(document).on('click', '#guardarBtn', function (event) {
var row=[];
$('.rowUpdate').each(function (i) {
var content=[];
$(this).find('input').each(function(key,value){
var field_name=$(this).attr('name');
var field_value=$(this).val();
content[field_name]=field_value;
});
row.push(content);
});
console.log(row);
});
試試這個(保持HTML相同):
$(document).on('click', '#guardarBtn', function (event) {
var rows = [];
$('.rowUpdate').each(function (i) {
var row = {};
$(this).find('td').each(function (j, v) {
if (j != 0) {
var input = $("input", this),
name = input.attr("name").substring(0, input.attr("name").length),
value = input.val();
row[name] = value;
}
rows.push(row);
});
});
如果我很好理解這個問題,你只需要這樣的東西(我不確定為什么你使用嵌套的each
循環 - 這有什么原因嗎?你在這些循環之間有更多的代碼嗎?)
$(document).on('click', '#guardarBtn', function(e){ var content={}; $('.rowUpdate td').find('input').each(function(){ content[this.name] = this.value; }); alert(JSON.stringify(content)); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class="rowUpdate"> <td>Corredor Feed</td> <td>Id Corrdor <input type="text" value="" class="validate" name="idcorreo"> </td> <td>Nombre <input type="text" value="" class="validate" name="nombre"> </td> <td>Email <input type="text" value="foo@bar.com" class="validate" name="email"> </td> <td>Empressa <input type="text" value="" class="validate" name="Empressa"> </td> <td>Pagina Web <input type="text" value="" class="validate" name="paginaWeb"> </td> <td>Telefono <input type="text" value="" class="validate" name="telephon"> </td> <td>Cellular <input type="text" value="" class="validate" name="cellular" /> </td> <td> <input type="submit" id="guardarBtn" value="Save" name="submitme"> </td> </tr> </table>
更短的訪問方式:
$(document).on('click', '#guardarBtn', function (event) { var content = {}; $('.rowUpdate').each(function (i) { $(this).find('input[type=text]').each(function(){ content[$(this).attr("name")] = $(this).val(); }); }); alert(JSON.stringify(content)); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class="rowUpdate"> <td>Corredor Feed</td> <td>Id Corrdor <input type="text" value="" class="validate" name="idcorreo"> </td> <td>Nombre <input type="text" value="" class="validate" name="nombre"> </td> <td>Email <input type="text" value="foo@bar.com" class="validate" name="email"> </td> <td>Empressa <input type="text" value="" class="validate" name="Empressa"> </td> <td>Pagina Web <input type="text" value="" class="validate" name="paginaWeb"> </td> <td>Telefono <input type="text" value="" class="validate" name="telephon"> </td> <td>Cellular <input type="text" value="" class="validate" name="cellular" /> </td> <td> <input type="submit" id="guardarBtn" value="Save" name="submitme"> </td> </tr> </table>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.