Js replace

悬赏:10 发布时间:2008-07-25 提问人:huangtut (初级程序员)

<td id='a'> <input name='ddd[0]'></td>

想将[0]替换成[1]。直接写 var td=document.getElementById('a');
var str=td.innerHTML.replace('[0]','[1]');
是可以操作的,但是变成了[[1]];
因为是循环操作。
var i=0;
var ls='['+i+']';
var ls2=i+1;
var ls3='['+ls2+']';
str=td.innerHTML.replace(ls,ls2);
这样操作就没有效果了,请问是什么原因?需要转义吗?谢谢
该问题已经关闭: 没有满意的回答

回答

str=td.innerHTML.replace(new RegExp(ls),ls2);
jljlpch (初级程序员) 2008-07-25
刚才试了一下:
<script>
window.onload=function(){
	var div=document.getElementById("test");
	var ls='[0]';
	var ls3='[1]';
	//var str=div.innerHTML.replace('[0]','[1]');
	var str=div.innerHTML.replace(ls,ls3);
	alert(str);
}
</script>
<table>
<tr><td id="test"><input name='ddd[0]'></td></tr>
</table>
两种方法都没有任何错误...

难道..难道..难道JavaEye中再一次出现了传说中的"RP"问题?
ham (资深程序员) 2008-07-25