我需要添加:
我有下一个html模型:
<form id="myform">
<table>
<tr>
<td>some text</td>
<td>some text</td>
<td>some text</td>
</tr>
<tr>
<td>some text</td>
<td>some text</td>
<td>some text</td>
</tr>
</table>
</form>
在jquery应用之后我需要这样:
<form id="myform"> <!--no changes-->
<table id="table1"> <!--changed-->
<tr>
<td class="td1">some text</td> <!--changed-->
<td class="td2">some text</td> <!--changed-->
<td class="td3">some text</td> <!--changed-->
</tr>
<tr>
<td class="td1">some text</td> <!--changed-->
<td class="td2">some text</td> <!--changed-->
<td class="td3">some text</td> <!--changed-->
</tr>
</table>
</form>
答案 0 :(得分:2)
让我们试试:
$(function(){
$('#myform').find('table').each(function(i,e){
var $table = $(e);
$table.attr('id', 'table' + (parseInt($table.index(),10)+1));
$table.find('tr').each(function(i2,e2){
var $tr = $(e2);
$tr.find('td').each(function(i3, e3){
var $td = $(e3);
$td.addClass('td' + (parseInt($td.index(),10)+1));
});
});
});
});
示例:http://www.jsfiddle.net/YjC6y/43/
这应该非常通用。无论如何,我不确定这是否是最好的方式,但我确信优雅的&amp;如果没有,Stackoverflow的聪明人会纠正这个。
答案 1 :(得分:1)
这里是您要在脚本中添加的代码
$("#myform table").attr("id", "table1");
$("#myform table tr").each(function(){
$("td:eq(0)",$(this)).attr("id", "td1");
$("td:eq(1)",$(this)).attr("id", "td2");
$("td:eq(2)",$(this)).attr("id", "td3");
});
答案 2 :(得分:1)
$('#myform table').each(function(i, v) {
$(v).attr('id','table' + (i + 1)).find('tr').each(function(idx, val) {
$(val).children().each(function(index,element) {
$(element).addClass('td' + (index + 1));
});
});
});
答案 3 :(得分:0)
(function($) {
var id = 'myid';
var class_prefix = 'myclass-';
$("#myform").find('table')
.attr('id', id)
.find('tr').each(function(i,el) {
row = $(el);
row.children('td').each(function(k, col) {
$(col).addClass(class_prefix + k);
});
});
});