一段文本字符串,用js 正则根据父item 的 id在其中找出,并替换它的子内容
<item text="a" id="1" >
<item text="a1" id="2"></item>
<item text="a2" id="3"></item>
....
</item>
根据 id=1 找出 父item, 然后用新的 item 内容替换其内部的老item
要添加的新item
<item text="ba1" ></item>
<item text="ba2" ></item>
最后得到的代码为:
<item text="a" id="1" >
<item text="ba1" ></item>
<item text="ba2" ></item>
</item>
------解决方案--------------------
写了个例子你看看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<script type="text/javascript">
var tagContent = "<div>呵呵呵</div><div>哈哈哈</div>"
function replace(){
var superNod = document.getElementById("11").parentNode;
for(var i = superNod.childNodes.length - 1; i > 0; i--){
superNod.removeChild(superNod.childNodes[i]);
}
superNod.innerHTML = superNod.innerHTML + tagContent;
}
</script>
<div>
<div id="11">zhangsan</div>
<div name="ee">lisi</div>
<div name="bb">wangsu</div>
</div>
<input type="button" value="替换内容" onclick="replace()"/>
</BODY>
</HTML>
------解决方案--------------------
var str = "abcd{jkdx}sdfsdaf{mm}";
str = str.replace("jkdx","kkk");
这样直接替换呢?
------解决方案--------------------
如果你是用在一个Web应用中使用,可以把这串字符串作为innerHTML插入到某个隐藏的div里面,就可以利用dom的代码进行操作了。
另外你的需求也不明确
<item text="a1" id="2"></item>
<item text="a2" id="3"></item>
.... <----从这个省略号可以看出你不止两个item,那你是不是想把text="aX"都换成text="baX"?而且也没哪个HTML标签是item吧,你自己定义的???我不是正则高手,如果这些东西都不确定是很难写出正则的
------解决方案--------------------
我发誓,6楼不是我回复的代码,我回复的是JS正则,点击提交就成了JAVA代码了,见鬼了...........
原回复如下:
var html="";
html=html.replace(/(<item[^>]*?id=(['"]?)1\2\s*>)(\n<item[^>]*?><\/item>)+\n(?=<\/item>)/i,'$1'+'<item text="ba1" ></item>
<item text="ba2" ></item>
');
F。U。C。K C。S。D。N