js判断重复节点并增加节点的方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>


<script type="text/javascript" src="jquery.min.js"></script>
<script language="javascript">
function check(){
return false;
}

function checkAdd(){
var objStr =document.getElementById("members"); //这是你要比较的值
var txtStr =objStr.value; //这是你要比较的值
//split()这是一个js函数在这里的作用是以 ‘ ’(空格为分隔符)分割成数组,arr的指就是保存1 1 2 2..的数值数组

txtStr = txtStr.replace(/(\r\n)|(\u0085)|(\u2028)|(\u2029)/g, "\n");

var txtStr = txtStr.split("\n");
var txtArr=txtStr.sort();
var text ="数组重复内容:";//判断左边是否存在相同数组的消息集合
var textright ="存在的:";//判断右边是否存在相同数组的消息集合
var newarr ="";

for(var i=0;i<txtArr.length;i++)
{
if(txtArr[i]=="")
continue;

if (txtArr[i]==txtArr[i+1])
{
text +=txtArr[i];
newarr+=txtArr[i]+"\n"+txtArr[i+1]+"\n";
txtArr.splice(i,2,'','');

}
}

for(var i=0;i<txtArr.length;i++)
{
if(txtArr[i] != null)
{
var objSelect=document.getElementById("goods");
var good=objSelect.options;
if(containOptions(good,txtArr[i]))
{
textright +=txtArr[i];

}
else
{ if(txtArr[i]!==""){
objSelect.add(new Option(txtArr[i],txtArr[i]));
}

}
}
}

if(text !=="数组重复内容:")
{
showTipMessage(text);//显示重复信息
}
if(textright !=="存在的:")
{
showTipMessage(textright);}
document.getElementById("members").value=newarr;
/*var arr1=document.getElementById("members").value.split("\n");
arr2 = delRepeatElement(arr1);
document.getElementById("members").value=arr2.join("\n");*/

return false;
}

function checkdel() {

return false;
}


function containOptions(a, s) {
var i = a.length;
if(i==0 || s ==null)
return false;
//alert("str:"+s);
//alert("arr:"+a[1]);
while (i--){
if (a[i].value === s)
{
return true;
}
}
return false;
}


/*删除节点*/
function delNode()
{
var dest = document.getElementById('goods');

for (var i = dest.options.length - 1; i >= 0 ; i--)
{
if (dest.options[i].selected)
{
document.getElementById("members").value+=dest.options[i].value;
dest.options[i] = null;

}
}
}
/*文本信息提示,去掉弹窗*/
function showTipMessage(text) {
var notice = document.getElementById("tip_notice");

var tar = notice.getElementsByTagName("span")[0];
tar.innerHTML = text;
//setTimeout(hideTipMessage, time);
}

/*去除重复的字符串*/
function delRepeatElement(arr){
var rntArray=[],temp,hasValue;

for(var i in arr)
{
temp=arr[i];
hasValue=false;
for(var j in rntArray)
{
if(temp===rntArray[j])
{
hasValue=true;
break;
}
}
if(hasValue===false)
{
rntArray.push(temp);
}
}
return rntArray;
}
</script>
</head>

<body>

<form id="form1" name="form1" method="post" action="aa.php" onsubmit="javascript:return check();">
<table width="100%" border="0" cellpadding="0" cellspacing="1">
<tr>
<td width="40%" height="167" bgcolor="#EBEBEB">
<label>
<div align="center">
<textarea id="members" name="textarea" rows="10" style="width:200px;"></textarea>
</div>
</label> </td>
<td width="20%" bgcolor="#EBEBEB">
<div align="center"><button id="checkadd" onclick="checkAdd();">添加&gt;&gt;</button></div>
<div align="center">&nbsp;</div>
<div align="center"><button id="checkdel" onclick="delNode()">&lt;&lt;删除</button></div>
</td>
<td width="40%" bgcolor="#EBEBEB"><label>
<div align="center">
<select id="goods" name="select" size="10" style="width:200px;" ondblclick="delNode()">
</select>
</div>
</label></td>
</tr>
<tr>
<td height="30" colspan="3" bgcolor="#EBEBEB">
<div id="tip_notice">
温馨提示:<span></span>
</div>

</td>
</tr>
<tr>
<td height="30" colspan="3" bgcolor="#EBEBEB">
<div align="center">
<label>
<input type="submit" name="Submit" value="提交" />
</label>
</div>
</td>
</tr>
</table>
</form>

</body>
</html>

posted @ 2014-03-05 09:56  小男哥  阅读(598)  评论(0编辑  收藏  举报