例子,去除字符串的重复值。
方法一:
function checkRe(checkid) {
var id = window.parent.getQry("ctrid") + "_";
var values = window.parent.opener.document.getElementById(id + "txt_dept_name").value;
var keys = window.parent.opener.document.getElementById(id + "hf_ids").value;
var ary = checkid.value.split("|");
var newsValues = ary[0];
var newsKeys = ary[1];
if (checkid.checked) {
values = values + "," + newsValues;
keys = keys + "," + newsKeys;
}
else {
values = values.replace(new RegExp("," + newsValues), "");
keys = values.replace(new RegExp("," + newsKeys), "");
}
values = okd(values);
keys = okd(keys);
window.parent.opener.document.getElementById(id + "txt_dept_name").value = values;
window.parent.opener.document.getElementById(id + "hf_ids").value = keys;
return;
}
//转换成数组,去掉重复,再组合好。
function okd(str) {
var ary = str.split(",");
// 去重的算法
var json = {};
for (var i = 0; i < ary.length; i++) {
if (ary[i] != "") {
json["a" + ary[i]] = ary[i];
}
}
// 查看结果
var str2 = "";
for (var key in json) {
str2 += "," + json[key];
}
var s = str2.toString();
//去掉第一个逗号
if (s.substr(0, 1) == ',') {
s = s.substr(1);
}
return s;
}
function add_all() {
var ck = document.getElementsByTagName("input");
for (i = 0; i < ck.length; i++) {
if (ck[i].type == "checkbox") {
ck[i].checked = true;
checkRe(ck[i]);
}
} // www.jb200.com
}
function del_all() {
var id = window.parent.getQry("ctrid") + "_";
window.parent.opener.document.getElementById(id + "txt_dept_name").value = "";
window.parent.opener.document.getElementById(id + "hf_ids").value = "";
var ck = document.getElementsByTagName("input");
for (i = 0; i < ck.length; i++) {
if (ck[i].type == "checkbox") {
ck[i].checked = false;
}
}
}
调用方法:
<input id='chk_pkId' type='checkbox' name='chk' onclick='checkRe(this);' value='值|pkId' />
方法二,js去除字符串中重复值: