2013-05-29 57 views
0
<table border="1" id="matt"> 
<tr> 
    <td><input type="text" id="txtTitle" name="txtTitle"></td> 
    <td><input type="text" id="txtLink" name="txtLink"></td> 
</tr> 
<tr> 
    <td><input type="text"></td> 
    <td><input type="text"></td> 
</tr> 
<tr> 
    <td><input type="text"></td> 
    <td><input type="text"></td> 
</tr> 

生成錶行新的獨特的名稱和ID的形式加載

<script language="javascript"> 
var i = 1; 
$(window).load(function() { 
$("tbody tr:last").find("input").each(function() { 
$(this).attr({ 
    'id': function(_, id) { return id + i }, 
    'name': function(_, name) { return name + i }, 
    'value': ''    
}); 
}).end().appendTo("#matt"); 
i++; 
}); 
</script> 

給這個代碼..我要生成和/標籤從表格的第一行作爲複製的屬性形式加載,它應該是獨一無二的..任何幫助?我很難過。

+0

爲什麼你需要在這些看似非唯一元素的ID一樣簡單? –

+0

你可以忽略這個id ..重要的是這個名字,因爲我將它用作獲取值以將其保存到數據庫的基礎。 –

+0

您需要先獲取第一行元素的名稱,然後用這個名字遍歷它們。您的當前代碼只會正確設置第一個的名稱,其餘的將被命名爲1-n –

回答

0

好吧,如果你只想複製那些修改表中的所有其他行屬性,從第一個錶行的輸入標籤爲輸入,你可以用這個算法:

$(document).ready(function() { 
    var rows = $("table tbody tr"); 
    var txtTitle = rows.first().find('input').eq(0); 
    var txtLink = rows.first().find('input').eq(1); 
    rows.each(function (i) { 
     if (i==0) { return; } // skip first row. 
     var inputs = $(this).find('input'); 
     inputs.eq(0).attr('id', txtTitle.attr('id')+i) 
      .attr('name', txtTitle.attr('name')+i) 
      .attr('value', txtTitle.attr('value')+i); 
     inputs.eq(1).attr('id', txtLink.attr('id')+i) 
      .attr('name', txtLink.attr('name')+i) 
      .attr('value', txtLink.attr('value')+i); 
    }); 
}); 

上述代碼已經過測試here,其簡化版本爲here

而且克隆行jQuery是作爲例如爲:

$('table#matt tbody').append($('table#matt tbody tr:first').clone()); 
+0

謝謝!一個更多..我只是想它只複製從表#id ='亞特' –

+0

很高興它幫助:-)然後,只需將選擇器更改爲'var rows = $(「#matt tbody tr」);' – Stano

+0

這就是我認爲......謝謝......萬分感謝..我現在可以將值保存到我的sql數據庫了.. –