如何更改字符串中的id

时间:2014-11-17 15:25:24

标签: javascript jquery replace

我有这个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可以是任何数字,因此在所有情况下都不起作用:/

2 个答案:

答案 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);
}

这是做什么的:

  1. 从html字符串创建jquery对象:$(tab[i])
  2. 找到第一个tr对象:.find("tr").first()
  3. 设置属性&#34; id&#34;将对象改为&#34; id _&#34; + i:.attr("id", "id_" + i)
  4. 我添加了#34; id _&#34;因为ids and classes starting with a number are invalid而浏览器可能会忽略它。

    这将导致您的数组包含jquery对象而不是字符串,但您可以像字符串一样将它们添加到DOM中。如果由于某种原因需要将结果作为字符串,则只需添加.html()即可返回html字符串。