document.all判断ie,我这样为何不行?

    <input type='text' value='用户名'/>
    <input type='text' value='邮箱' />
    <input type='text' value='密码' />
    <script type="text/javascript">
        function input_defaultValue(){
            var get_input = document.getElementsByTagName("input");
            for (var i=0;i<get_input.length;i++)
            {    
                document.all ? 
                (get_input[i].attachEvent('onfocus',function(){if(this.value==this.defaultValue){this.value='';}});
                get_input[i].attachEvent('onblur',function(){if(this.value==''){this.value=this.defaultValue;}});)
                :
                (get_input[i].addEventListener('focus',function(){if(this.value==this.defaultValue){this.value='';}});
                get_input[i].addEventListener('blur',function(){if(this.value==''){this.value=this.defaultValue;}}););            
            }
        };
        input_defaultValue();
    </script>

总是提示错误,可能是因为document.all后面的选项中多了一些分号,那如何改进呢?谢谢

阅读 2.4k
1 个回答
            function input_defaultValue() {
                var get_input = document.getElementsByTagName("input");
                for(var i = 0; i < get_input.length; i++) {
                    if(document.all) {
                        get_input[i].attachEvent('onfocus', function() {
                            if(this.value == this.defaultValue) {
                                this.value = '';
                            }
                        });
                        get_input[i].attachEvent('onblur', function() {
                            if(this.value == '') {
                                this.value = this.defaultValue;
                            }
                        });
                    } else {
                        get_input[i].addEventListener('focus', function() {
                            if(this.value == this.defaultValue) {
                                this.value = '';
                            }
                        });
                        get_input[i].addEventListener('blur', function() {
                            if(this.value == '') {
                                this.value = this.defaultValue;
                            }
                        });
                    };
                }
            };
            input_defaultValue();

就改成了if(){}就对了,也没细看。
改进的话当然是能力检测了

            if(document.addEventListener) {
                //
            } else if(document.attachEvent()) {
                //
            } else {

            }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题