今天上午做一个很low的小练习,代码写完了想要封装重复利用来着

可是憋屈啊,怎么都不对,在document.style.width这里,想把width变成参数可是用点的话,会报错说找不到点后边这个属性

也是啊,点就是“的”的意思,点后边放一个abc代替,他当然会认为你要找style里边的abc属性啊。不妥,固不可、

听视频听到方括号这里,廓然打通了我的任督二脉,恍然大悟

可以用方括号代替啊!

其实这个用法还是很常见的,像dom二级事件里就要用到。

估计以后用方括号代替点来解决bug的时候还是很多的,虽然以前学到过,今天用到了就忘得一干二净到处抓狂

得get下来,留白、占位。

“原”代码:

 //change 封装到我实在无能为力的精简版
function widthFun(a,c){
a.onclick = function(){
beSet.style.width = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
widthFun(w200,200);
widthFun(w300,300);
widthFun(w500,500);
function heightFun(a,c){
a.onclick = function(){
beSet.style.height = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
heightFun(h200,200);
heightFun(h300,300);
heightFun(h500,500);
function borFun(a,c){
a.onclick = function(){
beSet.style.borderWidth = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
borFun(bor4,2);
borFun(bor6,6);
borFun(bor8,8);
function bgFun(a,c){
a.onclick = function(){
beSet.style.backgroundColor = c;
this.className = "mwjs-1-seting-cur";
}
}
bgFun(bgRed,"red");
bgFun(bgYellow,"yellow");
bgFun(bgBlue,"blue");

原js代码

任督二脉打通后的代码:

     function clickFun(a,b,c,d){
a.onclick = function(){
beSet.style[b] = d;
beSet.style[b] = c+"px";
this.className = "mwjs-1-seting-cur";
}
} clickFun(w200,"width","200");
clickFun(w300,"width","300");
clickFun(w500,"width","500");
clickFun(h200,"height","200");
clickFun(h300,"height","300");
clickFun(h500,"height","500");
clickFun(bor4,"borderWidth","4");
clickFun(bor6,"borderWidth","6");
clickFun(bor8,"borderWidth","8");
clickFun(bgRed,"backgroundColor","","red");
clickFun(bgYellow,"backgroundColor","","yellow");
clickFun(bgBlue,"backgroundColor","","blue");

整整少了尼玛17行啊啊啊。

关键注意第三行,style后边不再是点引用一个属性了,而是用了[]:style["width"] === style.width

html(pug)

 body
div#mask.mask
h3.mwjs-1-title 点击更改div的样式
input#mwjs1BtnSet(type="button",value="点我设置吧!")
div#mwjs1bySeted.mwjs-1-by-seted
div#mwjsPopWrap
h4 点击按钮尽情的设置样式吧!
span#mwjsPopClose X
.mwjs-p-wrap
p
input.mwjs-1-btn-text(type="button",value="设置宽度:")
input#mwjsWidth200.mwjs-1-seting-cur(type="button",value="200")
input#mwjsWidth300(type="button",value="300")
input#mwjsWidth500(type="button",value="500")
p
input.mwjs-1-btn-text(type="button",value="设置高度:")
input#mwjsHeight200(type="button",value="200")
input#mwjsHeight300(type="button",value="300")
input#mwjsHeight500(type="button",value="500")
p
input.mwjs-1-btn-text(type="button",value="边框粗细:")
input#mwjsBorder4(type="button",value="4")
input#mwjsBorder6(type="button",value="6")
input#mwjsBorder8(type="button",value="8")
p
input.mwjs-1-btn-text(type="button",value="背景颜色:")
input#mwjsBorderRed(type="button",value="红")
input#mwjsBorderYellow(type="button",value="黄")
input#mwjsBorderBlue(type="button",value="蓝")
p.mwjs1-submit-wrap
input#mwjs1Reset(type="button",value="重来")
input#mwjs1Submit(type="button",value="确认")

html

css(scss)

 body input[type="button"]{
margin-left: 10px;
background: #3b8cff;
color: #fff;
font-size: 14px;
padding: 10px;
border: none;
outline: none;
&:hover{
background: #2c6fce;
}
}
.mwjs-1-by-seted{
width: 100px;
height: 100px;
border: 1px solid #000;
margin: 10px 20px;
}
.mask{
display: none;
position: absolute;
top:;
left:;
background: url("../images/mask.png") repeat;
width: 100%;
height: 100%;
}
#mwjsPopWrap{
display: none;
position: absolute;
top:;
left:;
right:;
bottom:;
z-index:;
width: 300px;
margin: auto;
text-align: left;
height: 300px;
background: #fff;
padding: 40px;
.mwjs-p-wrap{
margin-top: 40px;
}
p{
margin: 0 0 15px 0;
}
h4,.mwjs1-submit-wrap{
position: relative;
text-align: center;
margin: 0 0 15px 0;
}
h4{
span{
position: absolute;
top: -30px;
right: -30px;
width: 30px;
height: 30px;
border-radius: 50%;
color: #999;
line-height: 30px;
&:hover{
background: #e8e8e8;
color: #333;
cursor: pointer;
}
}
}
input{
width: 50px;
border: 1px solid #999;
border-radius: 5px;
background: #fff;
color: #333;
padding: 5px 10px;
&:hover,&.mwjs-1-seting-cur{
background: #e8e8e8;
}
}
.mwjs-1-btn-text{
width: 80px;
margin:;
background: #fff;
color: #333;
border: none;
&:hover{
cursor: text;
background: #fff;
color: #333;
}
}
.mwjs1-submit-wrap{
margin-top: 40px;
input{
background: #3b8cff;
color: #fff;
font-size: 14px;
width: auto;
padding: 10px 30px;
border: 1px solid #2c6fce;
outline: none;
border-radius:;
margin: 10px 15px;
&#mwjs1Reset{
background: #c8c8c8;
border: 1px solid #b2b2b2;
&:hover{
background: #b2b2b2;
}
}
&:hover{
background: #2c6fce;
}
}
}
}

css

JS-点和中括号的更多相关文章

  1. 前端知识点-JS相关知识点

    1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为"Asynchronous JavaScript And XML"(异步JavaScript和XML) 是指一种创建 ...

  2. JS 前端构建工具gulpjs的使用介绍及技巧

    gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...

  3. 前端自动化之路之gulp,node.js

    随着现在前端技术的不断发展,和各个公司对前端项目开发更新速度的要求,前端自动化越来越受到大家的重视,之前传统的前端开发方式已经越来越不能满足开发的需求了,于是各种自动化工具随之产生了.而gulp就是其 ...

  4. 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案

    三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...

  5. (转)gulp使用

    前端构建工具gulpjs的使用介绍及技巧 gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nod ...

  6. 前端构建工具gulpjs的使用介绍及技巧

    gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...

  7. [Network] HTML、XML和JSON学习汇总

    写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个 ...

  8. java中Array/List/Map/Object与Json互相转换详解

    http://blog.csdn.net/xiaomu709421487/article/details/51456705 JSON(JavaScript Object Notation): 是一种轻 ...

  9. Jsonp理论实例代码详解

    什么是Json?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...

  10. Json格式转换

    验证Json格式可以进入 http://json.cn/ json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构1.对象:对象 ...

随机推荐

  1. C中结构体的存储分配

    C中结构体的存储分配 对于C语言中结构体所占的存储空间的大小,也一直是笔试面试的常客,今天好好看了一下这方面,以前一直以为很清楚了,今天通过各种实际测试举例,发现原来还是没有搞透彻,好在现在是彻底懂了 ...

  2. CheckBoxList 全选(jquery版本)

    function selectedAll(allselect, obj) { $("#"+obj.id+" input:checkbox").each(func ...

  3. java-el+jstl+jsbc综合示例

    项目结构: 项目展示: 数据库: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.5.53 : Database - product ************ ...

  4. MongoDB Shell 了解使用

    配置环境变量 WIN10系统:右键单击"此电脑"--属性--高级系统设置--高级--环境变量,添加C:\Program Files\MongoDB\Server\3.0\bin 如 ...

  5. Hash表的表大小

    hash表的出现主要是为了对内存中数据的快速.随机的访问.它主要有三个关键点:Hash表的大小.Hash函数.冲突的解决. 这里首先谈谈第一点:Hash表的大小. Hash表的大小一般是定长的,如果太 ...

  6. mssql 设置id自增 设置主键

    主键自增长列在进行数据插入的时候,很有用的,如可以获取返回的自增ID值,接下来将介绍SQL Server如何设置主键自增长列,感兴趣的朋友可以了解下,希望本文对你有所帮助     1.新建一数据表,里 ...

  7. 【转】7Z命令行解压缩

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  8. LaTeX公式

    在学习机器学习中会接触到大量的数学公式,所以在写博客是会非常的麻烦.用公式编辑器一个一个写会非常的麻烦,这时候我们可以使用LaTeX来插入公式. 写这篇博文的目的在于,大家如果要编辑一些简单的公式,就 ...

  9. dwr框架使用总结——简单示例

    1.新建web项目,项目名为dwr 2.导入以下jar包: dwr.jar.classes12.jar.commons-logging-1.0.4.jar和commons-logging.jar 3. ...

  10. php 中的 short_open_tag 的作用

    在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>). 同时,只有开启这个才可以使用 <?= 以代替 < ...