被一段简单的代码折腾崩溃了.
 alert(gReturn);
        if (gReturn.toUpperCase() == 'N')
         {
           alert("Hide");
 
           document.getElementById(pSelect).style.display='none';}
        else
         {
          
           alert("Show");
           document.getElementById(pSelect).style.display='block';}但是不管alert出来的是 Y还是N, 始终第二个alert都是Show.
gReturn我用typeof 看过,是string类型的.
在线等.谢谢了.

解决方案 »

  1.   

    if (gReturn.toUpperCase() == "N") 这样试试呢
      

  2.   

    检查长度,是否包含不可见字符?
    要不然就用gReturn.indexOf('n')或者正则表达式
      

  3.   

    楼上的兄弟,利用indexOf确实可以搞定. 不过我就想不明白了. 一个简简单单的字符串比较,为什么要搞那么复杂.
    而且这个indexof还是因为我知道目前这个要么是Y要么是N,不是比较两个复杂的字符串,否则还不崩溃啊...我看到有以下介绍,不过我试验,语法都不通过. 唉~~ 难以想象...
    **********************************************************************************
    equals()和==
    equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
    **********************************************************************************
    compareTo()和compareToIgnoreCase() 比较字符串
    **********************************************************************************
      

  4.   

    你这种判断未知字符串的情况下应该要预先处理的,通常去掉无效字符比如两边的空格/换行符或者检查长度,这些都是alert看不到的...如果字符串来自自己写的方法就不需要了
      

  5.   

    Occam兄,去掉无效字符. 那如何去掉呢?
    无效字符应该不止一个,难道我用穷举法? 给个解决的办法吧.
      

  6.   

    有可能前后空格的问题 String.prototype.trim= 
     function() 
     {
        return this.replace(/^\s+/, '').replace(/\s+$/, '');
      }
    alert(gReturn); 
        
            if (gReturn.trim().toUpperCase() == 'N') 
            { 
              alert("Hide");           document.getElementById(pSelect).style.display='none';} 
            else 
            { 
              
              alert("Show"); 
              document.getElementById(pSelect).style.display='block';} 
      

  7.   

    非常感谢各位兄弟的答复.理解了.下次遇到复杂字符串,直接用replace + trim试试.