Javascript jquery自动打印行号
我有一个10行的表,是否可以根据表的大小将行号(从1到9,第一行是NO&title,第二行应该是1)打印到类为“sno”的td?以下是html:Javascript jquery自动打印行号,javascript,jquery,Javascript,Jquery,我有一个10行的表,是否可以根据表的大小将行号(从1到9,第一行是NO&title,第二行应该是1)打印到类为“sno”的td?以下是html: <table width="100%" border="1"> <tr> <td width="23%">No.</td> <td width="77%">Title</td> </tr> <tr> <td clas
<table width="100%" border="1">
<tr>
<td width="23%">No.</td>
<td width="77%">Title</td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
<tr>
<td class="sno"> </td>
<td> </td>
</tr>
不
标题
结果应该是
<table width="100%" border="1">
<tr>
<td width="23%">No.</td>
<td width="77%">Title</td>
</tr>
<tr>
<td class="sno">1</td>
<td> </td>
</tr>
<tr>
<td class="sno">2</td>
<td> </td>
</tr>
<tr>
<td class="sno">3</td>
<td> </td>
</tr>
<tr>
<td class="sno">4</td>
<td> </td>
</tr>
<tr>
<td class="sno">5</td>
<td> </td>
</tr>
<tr>
<td class="sno">6</td>
<td> </td>
</tr>
<tr>
<td class="sno">7</td>
<td> </td>
</tr>
<tr>
<td class="sno">8</td>
<td> </td>
</tr>
<tr>
<td class="sno">9</td>
<td> </td>
</tr>
不
标题
1.
2.
3.
4.
5.
6.
7.
8.
9
问题不是生成表,而是打印正确的目标编号尝试使用simpleone
$('table tbody tr').not(":first").each(function(idx){
$(this).children(":eq(0)").html(idx + 1);
});
试试这个:
$(document).ready(function(){
$cells=$("table td.sno");
for(var i=0;i<$cells.length;i++)
{
// alert(i);
$cells.eq(i).text(i);
}
});
$(文档).ready(函数(){
$cells=$(“表td.sno”);
for(var i=0;i表行元素具有rowIndex属性,该属性是表的从零开始的序列号
因此,如果您有对单元格的引用,则可以使用:
var rowIndex = cell.parentNode.rowIndex;
如果表中有标题行,可能应该将它们放在ADTABLE部分,然后
您可以很容易地对“正文”部分中的行进行编号,例如:
<table>
<thead>
<tr>
<td>head<td>head
</tr>
</thead>
<tbody>
<tr>
<td class="sno"></td>
<td>...</td>
</tr>
<tr>
<td class="sno"></td>
<td>...</td>
</tr>
</tbody>
</table>
人头
...
...
因此,现在您可以执行以下操作:
window.onload = function() {
var table = document.getElementsByTagName('table')[0];
var rows = table.tBodies[0].rows;
for (var i=0, iLen=rows.length; i<iLen; i++) {
rows[i].cells[0].innerHTML = i + 1;
}
};
window.onload=function(){
var table=document.getElementsByTagName('table')[0];
var rows=table.tBodies[0]。行;
对于(var i=0,iLen=rows.length;i,这里是JSFIDLE示例:
试试这个:
$(document).ready(function(){
var i=1;
$('.sno').each(function(){
$(this).text(i);
i++;
});
});
表的大小意味着?你想打印所有.sno
的数字吗?这里.sno
只包含空格而不包含数字。表的大小是10。这在vanilla JavaScript和jQuery中都非常容易做到。你尝试了什么?@hk面试你看到下面的答案了吗?有解决方案。你错过了:first
否则,它也将替换标题No.
。这是非常低效的,在每个循环中,您将获得$(“table td.sno”)
对象两次。更好的是,但是您应该只获得$(…)
对象一次,然后对其进行迭代,以便执行类似var$cells=$(“table td.sno”)的操作;
,然后…;i<$cells.length;…
和$cells[i]。文本(i)
或类似内容。
$(document).ready(function(){
var i=1;
$('.sno').each(function(){
$(this).text(i);
i++;
});
});