我想实现这样的功能,在for循环里面,若判断得到 a == node 则提示用户,此对应关系已经存在,请重新选择,若a != node 
则执行插入数据库错做,并提示用户,保存成功。可是现在我不知道为什么,在for循环中,if 和 else同时执行啦那这到底是哪里的错啊,????、 
以下是整个for循环,请大虾帮忙。 //循环遍历节点并判断 
var node = ""; 
for(i=0;i <allNode.length;i++){ 
    node =  ""+allNode[i].childNodes[0].text+ ""; 
    //alert(node); 
    if(a == node){ 
       alert("此对应关系已经存在,请重新选择。"); 
    }else{ 
        //插到对应关系表中 
        var sql = " <no>insert into CJ_JT_NSRCPDMDY values ('"+a+"','"+cpbh+"','"+qybh+"','bz') </no>"; 
        //alert(sql); 
        //alert(node); 
       if(IsSpace(sql)==false){            InsertSqls(sql); 
           alert("保存成功!");        }else{ 
          alert(sql); 
       }    
   } 

解决方案 »

  1.   

    同时执行?看错了吧,假设i=0执行if中的alert(),i=1执行else中的alert,这算不算同时执行?
      

  2.   


    var node = "";
    for(i=0;i <allNode.length;i++){
        node =  ""+allNode[i].childNodes[0].text+ "";
        //alert(node);
        if(a == node){
          alert("此对应关系已经存在,请重新选择。");
          return ;
        }else{
            //插到对应关系表中
            var sql = " <no>insert into CJ_JT_NSRCPDMDY values ('"+a+"','"+cpbh+"','"+qybh+"','bz') </no>";
            //alert(sql);
            //alert(node);
          if(IsSpace(sql)==false){          InsertSqls(sql);
              alert("保存成功!");
           
          }else{
              alert(sql);
          }   
      return ;
      }

      

  3.   

    有多条记录且部分记录符合if条件,部分记录不符合if条件时, 符合 if 条件的那些就会执行 alert("此对应关系已经存在,请重新选择。"); ,反之则会执行   alert("保存成功!");  或   alert(sql); ,所以你会觉得既执行了if,又执行了else。
      

  4.   

    假如我想 在循环到提示客户:“此对应关系已经存在,请重新选择。”的时候,就跳出for循环,不再运行
    alert("保存成功!" 这句话啦,用的break;可是不管用那
      

  5.   

    lz原来的代码完全符合需求
    请在alert中把 node的值也打出来