我有这个js vars:
tab[1] = '<TR id="1"><TD>1</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[2] = '<TR id="2"><TD>2</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[3] = '<TR id="5"><TD>5</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[4] = '<TR id="7"><TD>7</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
如何使用js replace替换每个变量中的ID和第一列?
结果应如下所示:
tab[1] = '<TR id="1"><TD>1</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[2] = '<TR id="2"><TD>2</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[3] = '<TR id="3"><TD>3</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
tab[4] = '<TR id="4"><TD>4</TD><TD>name</TD><TD >1</TD><TD>100.00</TD></TR>';
@edit
我试过简单的替换:
`tab[i]=tab[i].replace('id="'+k+'"><TD>'+k+'</TD>', 'id="'+i+'"><TD>'+i+'</TD>');`
但是id可以是任何数字,因此在所有情况下都不起作用:/
答案 0 :(得分:0)
我个人认为最简单的方法是在将HTML添加到您的文档后。一个例子:
table = document.getElementById('whatIsYourTablesIdBecauseIDontKnow =p');
for (var i = 0; i < table.rows.length; i ++) {
table.rows[i].id = i + 1;
}
更好的是,对于使用ID的任何代码,将其更改为以数字方式选择行;就像我刚才那样做了循环。
答案 1 :(得分:0)
由于您已经在使用jquery:
for (var i = 0; i < tab.length; i ++) {
tab[i] = $(tab[i]).find("tr").first().attr("id", "id_" + i);
}
这是做什么的:
$(tab[i])
.find("tr").first()
.attr("id", "id_" + i)
我添加了#34; id _&#34;因为ids and classes starting with a number are invalid而浏览器可能会忽略它。
这将导致您的数组包含jquery对象而不是字符串,但您可以像字符串一样将它们添加到DOM中。如果由于某种原因需要将结果作为字符串,则只需添加.html()
即可返回html字符串。