为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码可以优化吗?可以的话怎么优化

这段代码可以优化吗?可以的话怎么优化

hhhzihao2 2017-02-24 10:07:39
onload = function(){     /* 聚焦时隐藏placeholder,失焦时显示 */     var Inputs = document.getElementsByTagName("input"),Textareas = document.getElementsByTagName("textarea");     for ( var i in Inputs ) {         Inputs[i].onfocus = function(){             this.placeholder_str = this.placeholder ? this.placeholder : '';             this.placeholder = '';         };         Inputs[i].onblur = function(){             this.placeholder = this.placeholder_str ? this.placeholder_str : '';         }     }     for ( var i in Textareas ) {         Textareas[i].onfocus = function(){             this.placeholder_str = this.placeholder ? this.placeholder : '';             this.placeholder = '';         };         Textareas[i].onblur = function(){             this.placeholder = this.placeholder_str ? this.placeholder_str : '';         }     } };
查看完整描述

3 回答

?
依然c

TA贡献54条经验 获得超32个赞

聚焦隐藏placeholder这个html5里面就有啊。<input type="text" placeholder="hello world">.

但是如果你是想写的兼容的话,js里面循环最好不要用for in,除非你不知道这个数组的长度,一本优化书里说的。

而且你们document.get...这个,没写一次都要查找一次的,定义好再用,比如let textarea = doc...  然后再用

查看完整回答
1 反对 回复 2017-02-24
  • hhhzihao2
    hhhzihao2
    1、聚焦隐藏placeholder这个html5里面就有?我用的谷歌和火狐都没有哦 2、求代码 嘿
  • 依然c
    依然c
    有啊,后面我贴出来了啊,不然我写那个干嘛。就是input的那个,不用想太多,就这么简单,试下就知道。还有,给个采纳回复啊
  • hhhzihao2
    hhhzihao2
    有placeholder但聚焦不会隐藏
点击展开后面1
?
hhhzihao2

TA贡献8条经验 获得超1个赞

var Inputs = document.getElementsByTagName('input');
var Textareas = document.getElementsByTagName('textarea');
for (var i = 0, len = Inputs.length + Textareas.length; i < len; i++) {
	var Elem = i < Inputs.length ? Inputs[i] : Textareas[i - Inputs.length];
	Elem.onfocus = function() {
		this.placeholder_str = this.placeholder ? this.placeholder : '';
		this.placeholder = ''
	};
	Elem.onblur = function() {
		this.placeholder = this.placeholder_str ? this.placeholder_str : ''
	}
}


查看完整回答
反对 回复 2017-02-27
?
疯子520520

TA贡献39条经验 获得超236个赞

可以的,可以将inputs及textareas合并一起处理,不用分开

查看完整回答
反对 回复 2017-02-24
  • 3 回答
  • 0 关注
  • 2036 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信