var ary = new Array();
function SelectIds(Obj)
{
var key;
if(Obj.checked==true)
{
ary.push(Obj.id);
alert(ary.length);
}
else
{
for(var i=0;i<ary.length;i++)
{
if(Obj.id==ary[i])
{
key= i
}
delete ary[key];
}
alert(ary.length);
}
var count=ary.length;
if(count >0)
{
var ids="";
for(var i=0;i<ary.length;i++)
{
ids+=ary[i].toString()+",";
}
window.parent.document.getElementById("lblid").value=ids;
alert(window.parent.document.getElementById("lblid").value);
}
}为什么delete ary[key];之后,ary的length还是原来的?
function SelectIds(Obj)
{
var key;
if(Obj.checked==true)
{
ary.push(Obj.id);
alert(ary.length);
}
else
{
for(var i=0;i<ary.length;i++)
{
if(Obj.id==ary[i])
{
key= i
}
delete ary[key];
}
alert(ary.length);
}
var count=ary.length;
if(count >0)
{
var ids="";
for(var i=0;i<ary.length;i++)
{
ids+=ary[i].toString()+",";
}
window.parent.document.getElementById("lblid").value=ids;
alert(window.parent.document.getElementById("lblid").value);
}
}为什么delete ary[key];之后,ary的length还是原来的?
var map = new Object();
func test(id1){
if(id1 选中) map.id1=true;
if(id2 未选中) map.id1=false;
}最后Map中含有所有选中和未选中的元素,例如遍历所有选中的
var arrid =[];
for(var id in map){
if(map[id]==true) arrid.push(map[id]);
}最后arrid数组存放的就是所有的选中的id.对于去重这种需求,Map才是最佳结构!上面代码基本上是伪代码,表达下意识。
var temp="";
function SelectIds(Obj)
{
if(Obj.checked==true)
{
temp += Obj.id + ",";
}
else
{
temp = temp.replace(Obj.id+",","");
}
window.parent.document.getElementById("lblid").value=temp;
alert(window.parent.document.getElementById("lblid").value);
}
呵呵,经过经理的指点,,,,原来这么简单,搞定啦,谢谢啦。
刚才有个人,思路跟这个类似(lz好像发了两次,就这个问题)
Array.prototype.indexOf=function(obj){
for(var i=0;i<this.length;i++){
if(this[i]===obj)
return i;
}
return -1;
}
var arr = new Array();
function SelectIds(obj){
obj.checked?arr.push(obj.id):arr.splice(arr.indexOf(obj.id),1);
alert(arr.join());
}
arr.splice(1,1);//delete index=1
alert(arr.length);
var o = new Object();
function SelectIds(Obj)
{
if(Obj.checked==true){
o[Obj.id]=Obj.id;
}else{
delete o[Obj.id];
}
var ids="";
for(var i in o){
if(ids!=""){
ids+=",";
}
ids+=o[i];
}
window.parent.document.getElementById("lblid").value=ids;
alert(window.parent.document.getElementById("lblid").value);
}
}