日期:2014-05-16  浏览次数:20393 次

求助 急 js替换字符串问题
本帖最后由 yyh112 于 2013-08-08 20:37:02 编辑
实现的功能很简单 
<li onClick="GetContactluk('a','b','qdcx','17_王文元')">王文元</li>
点击这个li 把值传给文本框
<input name="a" id=a type="text">
<input name="b" id=b type="text">
<ul id=qdcx></ul>
再点击这个li时把选定的的值从下面的元素中去掉
<input name="a" id=a type="text">
<input name="b" id=b type="text">
<ul id=qdcx></ul>

现在文本框的值都解决了,但是
document.getElementById(“qdcx”).innerHTML这个只能增加不能删除,
求大虾们想想办法,帮小弟解决一下 谢谢各位了
分不多,还望大虾们不吝赐教!

JS代码如下:

function GetContactluk(sid,bid,cid,did){
 var aa = document.getElementById(sid).value;
 var ab = document.getElementById(bid).value;
 var ac = document.getElementById(cid).innerHTML;
 var m=did.split("_")[0];
 var n=did.split("_")[1];
 var v=","+aa;
 if(v.indexOf(did.split("_")[0]) > 0) {
//ac = ac.replace(/[\r\n]/g,"") //去掉回车
//alert(ac)
 aa = aa.replace(new RegExp(m + ",","g"),"").Trim();
 ab = ab.replace(new RegExp(n + ",","g"),"").Trim();
 ac = ac.replace(new RegExp("<li>"+ n + "</li>","g"),"").Trim();
 document.getElementById(sid).value =aa.replace(/\n[\s ]*\r/g,""); //替换空行
 document.getElementById(bid).value =ab.replace(/\n[\s ]*\r/g,"");
 document.getElementById(cid).innerHTML =ac.replace(/\n[\s ]*\r/g,"");
 }else{
 document.getElementById(sid).value = aa + m + ",";
 document.getElementById(bid).value = ab + n + ",";
 document.getElementById(cid).innerHTML =ac + "<li>" + n +"</li>";
 }
}
JavaScript replace RegExp

------解决方案--------------------
向右侧添加li的时候,给每个li个id。比如可以用m

删除的时候通过id找到这个li元素,然后用ul的removeChild就行