none
【JS】这段js应该如何理解? RRS feed

  • 问题

  • function(str){
            if(document.all){
                if(document.getElementById(str).value){
                    return this.trim(document.getElementById(str).value);
                }else{
                    return document.getElementById(str).innerHTML;
                }
            }else{
                if(document.getElementById(str)){
                    if(document.getElementById(str).value){
                        return this.trim(document.getElementById(str).value);
                    }else{
                        return document.getElementById(str).innerHTML;
                    }
                }else{
                    if(document.getElementsByName(str)[0].value){
                        return this.trim(document.getElementsByName(str)[0].value);
                    }
                }
            }
    我不明白,if中的document.getElementById(str).value实际上是一个控件的值,为什么能放在if中做bool运算呢?请指教
    • 已移动 Sheng Jiang 蒋晟 2010年6月5日 13:14 非.Net问题 (发件人:.NET Framework 一般性问题讨论区)
    2010年6月5日 5:07

答案

  • JavaScript规定undefined、null、""和0这4个特殊值转换为逻辑值时就是false. 如果你取到的值为空自然就是false了
    icyflash
    • 已建议为答案 Icyflash 2010年6月5日 9:00
    • 已标记为答案 jinwb1982 2010年6月5日 9:16
    2010年6月5日 9:00

全部回复

  • JavaScript规定undefined、null、""和0这4个特殊值转换为逻辑值时就是false. 如果你取到的值为空自然就是false了
    icyflash
    • 已建议为答案 Icyflash 2010年6月5日 9:00
    • 已标记为答案 jinwb1982 2010年6月5日 9:16
    2010年6月5日 9:00
  • 感谢你的解答,记得以前我看过这方面的文章,哎真是老了啊,这些东西我都记不住了,惭愧啊,惭愧
    2010年6月5日 9:16