主攻JS
(28)jade的简单说明 正好我也是刚学,我会尽量结合实例和效果进行说明,如果有多种方式的话,我会尽量都写到。(另外,或许因为版本问题,有些结果和之前是有一定差异的,我写的都是经过我测试,目前最新版本Express所使用的jade)。 注:jade的文件创建,同 ①对照的两端代码: HTML版: <!DOCTYPE html> <html&g
(25)http.ServerRequest的过程 ①http.ServerRequest提供了3个事件用于控制请求体传输: 【1】data:当请求体数据到来时,该事件被触发,提供一个参数给回调函数,是接受到的数据,该事件可能被多次调用(所有data按顺序的集合,是请求体数据)。如果该事件没有被监听,请求体将被抛弃; 【2】end:当请求体数据完成时该事件触发。此后不再触发da
(25)http.ServerRequest的过程 ①http.ServerRequest提供了3个事件用于控制请求体传输: 【1】data:当请求体数据到来时,该事件被触发,提供一个参数给回调函数,是接受到的数据,该事件可能被多次调用(所有data按顺序的集合,是请求体数据)。如果该事件没有被监听,请求体将被抛弃; 【2】end:当请求体数据完成时该事件触发。此后不再触发da
(24)request的结构 这里指的是发送的结构: 先上代码: var http = require("http"); var util = require("util"); var server = new http.Server(); server.on("request", function (req, res) { res.writeHead(200, {'Co
(24)request的结构 这里指的是发送的结构: 先上代码: var http = require("http"); var util = require("util"); var server = new http.Server(); server.on("request", function (req, res) { res.writeHead(200, {'Co
(20)文件系统fs ①提供了文件的读取、写入、更名、删除、遍历目录、链接等功能。 所有操作都有异步和同步两种方法。 ②文件读取:readFile fs.readFile(filename, [encoding], [callback(err, data)]) 参数一:是文件名; 参数二:编码方式,默认二进制(具体搜之前的); 参数三:回调函数(参数一是错误,参
原理: 通过隐藏原有的(调透明度和绝对定位),然后用一个新的图标来覆盖上去 CSS代码: .radio { /*这个描述的是输入框的基本样式,透明,绝对定位,浮动在最下*/ opacity: 0; position: absolute; z-index: -1; /*这行是让原图标被其他的遮挡,避免挡住其他按钮影响事件触发*
(28)禁止元素被选中 在css的样式表里,添加这样属性(可兼容所有浏览器) { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } 关于IE10的: h
(34)选择器 ①普通选择方法,略 ②选择其中的c,要求是b里的c <div class="a"> <div class="b"> <div class="c"> </div> </div> <div class="c"> </div
(34)将输入框数字,每3位用逗号分隔 输入框的值为this.value JS代码: function toHaveComma(obj) { console.log(obj.value); var val = obj.value.toString(); var length = val.length; for (var i = 1; i <
①events模块只提供了一个对象,events.EventEmitter 他的核心是 事件发射 和 事件监听 功能 每个事件由一个事件名(用于标识事件),和多个参数组成。 事件名:字符串,通常表达一定的语义; 事件被发射时,监听该事件的函数被依次调用。 ②调用模块: var events = require("events"); var emi
(15)模块 当我们制作一个模块时(具体制作方法见前面),我们可能会写一个构造函数(因为在浏览器写构造函数时我们经常会这么做)。 如代码: function sayHello() { this.say = function () { console.log('hello'); } } exports.Hello = sayHello; 在这里
(13)文件读取的简单用法 模块需求:fs 方法: ①首先我们创建一个test.txt文件,里面输入内容 It's a test txt. 注意,这个txt文件应该是utf-8格式的 ②然后我们创建一个js文件,调用fs模块,并输入一段代码: 注意,此时文件名是错误的 然后执行这个js文件 var fs = require('fs'); fs.readFil
我的mysql是mysql-5.6.17-winx64 nodejs是目前最新版。 ①安装nodejs的mysql模块 如果你的nodejs的版本比较新的话,应该不存在安装路径问题; 在你想要运行nodejs文件的根路径,启动命令行(shift+鼠标右键); 输入: npm install mysql 正常的话,应该出的是一个带树形结构的图,比如这样:
(21)滚动条的美化 for chrome内核: /* 有这行才有效,滚动条的宽度 */ ::-webkit-scrollbar { width: 12px; } /* 滚动条的背景 */ ::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 06px rgba(0,0,0,0.3); -webkit-
(1)如何封装一个模块; 首先,我们建立一个js文件,例如命名为test.js; 然后在里面写一个函数,函数名任意; 然后通过exports.变量名,将函数赋值给这个变量; 如代码: function test(){ //请注意这个函数名 console.log("1"); }exports.testBegin= test; //等号后面的tes
(74)dojo的表单模块 插件:dojo/dom-form 参数:domForm 解释: 当我们需要像服务器提交很多内容时(比如很多个input输入框,还有一些单选按钮、多选按钮),我们必须将这些输入框的值变成一个对象(也许还要转为一个json字符串),在post的时候将其传递给服务器; 假如一个一个读过去,这也太傻了。所以这就是dom-for
(74)dojo的表单模块 插件:dojo/dom-form 参数:domForm 解释: 当我们需要像服务器提交很多内容时(比如很多个input输入框,还有一些单选按钮、多选按钮),我们必须将这些输入框的值变成一个对象(也许还要转为一个json字符串),在post的时候将其传递给服务器; 假如一个一个读过去,这也太傻了。所以这就是dom-for
(74)dojo的表单模块 插件:dojo/dom-form 参数:domForm 解释: 当我们需要像服务器提交很多内容时(比如很多个input输入框,还有一些单选按钮、多选按钮),我们必须将这些输入框的值变成一个对象(也许还要转为一个json字符串),在post的时候将其传递给服务器; 假如一个一个读过去,这也太傻了。所以这就是dom-for
(73)封装一个widget 醒目:必须在web环境下使用,无论是python的web.py或者是通过http访问网站环境,都可以,但纯本地是不可行的。 首先,什么是widget? 简单来说,就是一个dom结点,比如像这样: <div> 这是一个dom结点 </div> 为什么需要widget呢? 很简单,比如,我们想在这样一个地方:
(73)封装一个widget 醒目:必须在web环境下使用,无论是python的web.py或者是通过http访问网站环境,都可以,但纯本地是不可行的。 首先,什么是widget? 简单来说,就是一个dom结点,比如像这样: <div> 这是一个dom结点 </div> 为什么需要widget呢? 很简单,比如,我们想在这样一个地方:
(20)函数的原型 ①Object.create(obj) 根据原型obj创建一个对象; 例如: var obj = { a: 1 } var o1 = Object.create(obj); console.log(obj); console.log(o1); 输出为: Object {a: 1} Object {} ②使用构造函数方法: 使用构造函
(20)函数的原型 ①Object.create(obj) 根据原型obj创建一个对象; 例如: var obj = { a: 1 } var o1 = Object.create(obj); console.log(obj); console.log(o1); 输出为: Object {a: 1} Object {} ②使用构造函数方法: 使用构造函
(18)闭包 ①函数内部的子函数,用到了父函数的变量,就叫做闭包。 ②可以为函数保存其执行状态, ③其原理大概是: 首先,假如B函数在A函数的内部,则A为外部函数,B为内部函数,B可以访问A的变量(变量的作用域规定的); 然后,假如在函数内部,如果有一个return,那么在return结束前,这个函数中的变量,其值是维持不变的; 另外需要注意,不能让A函数(外部函数
(18)闭包 ①函数内部的子函数,用到了父函数的变量,就叫做闭包。 ②可以为函数保存其执行状态, ③其原理大概是: 首先,假如B函数在A函数的内部,则A为外部函数,B为内部函数,B可以访问A的变量(变量的作用域规定的); 然后,假如在函数内部,如果有一个return,那么在return结束前,这个函数中的变量,其值是维持不变的; 另外需要注意,不能让A函数(外部函数
关于声明及封装一个类,请查阅我的上一篇博客: http://blog.csdn.net/qq20004604/article/details/51456809 (72)继承一个类 在(71)的基础上,我们继续。 我们之前声明了一个类add,那么计算时,仅仅只有add显然是不够的。我们还需要minus(减去)。 那么我们重新建一个文件minus,然后把add的内容复制过
关于声明及封装一个类,请查阅我的上一篇博客: http://blog.csdn.net/qq20004604/article/details/51456809 (72)继承一个类 在(71)的基础上,我们继续。 我们之前声明了一个类add,那么计算时,仅仅只有add显然是不够的。我们还需要minus(减去)。 那么我们重新建一个文件minus,然后把add的内容复制过
(71)声明一个类declare 作用: 封装一个类,然后可以通过调用这个类,来调用其类方法。 优点: ①可以继承其他类的类方法; ②假如我们需要使用一个类的类方法,而这个类依赖于5个插件。如果正常调用的话,我们需要在每个使用这个类的js文件里,调用这5个插件。当我们使用封装时,我们只需要调用这个类即可。而调用这个类的方法很简单。 ③可以使得代码模块化,按
前注:参考网易云课堂前端的正则表达式内容 (12)正则表达式 ①描述字符串规则的表达式 使用 /规则/ 来表示 ②正则表达式.test(字符串) 用于测试正则表达式与字符串是否匹配 返回值是true或者false 注:只需要字符串里包含正则表达式,即返回true,也就是说,假如正则表达式是/123/,字符串是a1234b,那么依然返回true ③锚点
注:$("#a").text( 内容 ) 是jquery的方法,可以理解为在 <div id="a"></div> 添加内容变为: <div id="a">内容</div> (6)数值 注意,Math的M需要大写 ①绝对值:Math.abc(x) 获得x的绝对值(之后的意思都类似,非特殊不再说明) ②
部分可能不兼容低版本浏览器(比如IE) 部分图片来自网易云课堂,侵、私信、删 (60)定位 ①position ②值: static:默认,无定位 relative:相对定位,仍在文档流之中(其他的元素不变),参照物相对于原来的位置进行定位。会压在其他的元素上面。作用是为绝对定位元素提供参照物。 absolute:绝对定位,脱离文档流(后续元素会在绝对
注意,有些CSS属性对于低版本浏览器(典型的就是IE),可能不支持,所以在面向低版本浏览器的时候需要注意的说。 关于CSS属性的兼容性检测的网站:http://caniuse.com/ 部分图片来自网易云课堂,侵、私信、删 (34)文字字体 ①font-size:文字大小 ②值有:length(具体值)、absolute-size(绝对值,用的少)、relative-size
注意,有些CSS属性对于低版本浏览器(典型的就是IE),可能不支持,所以在面向低版本浏览器的时候需要注意的说。 关于CSS属性的兼容性检测的网站:http://caniuse.com/ 部分图片来自网易云课堂,侵、私信、删 (34)文字字体 ①font-size:文字大小 ②值有:length(具体值)、absolute-size(绝对值,用的少)、relative-size
注意,有些CSS属性对于低版本浏览器(典型的就是IE),可能不支持,所以在面向低版本浏览器的时候需要注意的说。 关于CSS属性的兼容性检测的网站:http://caniuse.com/ 部分图片来自网易云课堂,侵、私信、删 (34)文字字体 ①font-size:文字大小 ②值有:length(具体值)、absolute-size(绝对值,用的少)、relative-size
(29)把json转化为字符串 JSON.stringify(store) 即可(注意JSON要大写),store是json对象 (30)对一个数组赋值 ①假如我们有一个不定长度的数组abc ②我们想要将该数组逐值赋给另一个数组def; ③因此,机智的我们想到了使用for循环; for(var i = 0; i < abc.length; i++) {
5/5更新。BorderContainer自适应在本地时正常使用的方法,请查看原文代码之前那一段话 (60)创建一个饼形图 比较简单的标签声明法:(只需要修改数据即可) ①首先,加载dojo文件和样式文件:(关于style.css,需要根据自己找到的路径修改,或者使用我从官网上找到的链接:https://dojotoolkit.org/documentation/tutorial
5/5更新。BorderContainer自适应在本地时正常使用的方法,请查看原文代码之前那一段话 (60)创建一个饼形图 比较简单的标签声明法:(只需要修改数据即可) ①首先,加载dojo文件和样式文件:(关于style.css,需要根据自己找到的路径修改,或者使用我从官网上找到的链接:https://dojotoolkit.org/documentation/tutorial
前注:图片和部分内容引用的网易云课堂的,所以,侵,私信,删。 这篇也算上周的 (10)打开一个网页时,以新窗口形式打开 将 <a href="www.baidu.com"></a> 新增属性: <a href="www.baidu.com" target="_blank"></a> 即可。 (11)关
前注:图片和部分内容引用的网易云课堂的,所以,侵,私信,删。 这篇也算上周的 (10)打开一个网页时,以新窗口形式打开 将 <a href="www.baidu.com"></a> 新增属性: <a href="www.baidu.com" target="_blank"></a> 即可。 (11)关
前注:我在练习的时候,函数命名比较随意,以修改起来简单的简短无意义函数名为主,实际使用时,请使用更易阅读、规范的命名方式 (ps:这篇算是上周的) (26)让某块随着浏览器的高度变化而自动变化 假设该块的标签名为section 于是: function ge() { var m =document.documentElement.client
前注:我在练习的时候,函数命名比较随意,以修改起来简单的简短无意义函数名为主,实际使用时,请使用更易阅读、规范的命名方式 (ps:这篇算是上周的) (26)让某块随着浏览器的高度变化而自动变化 假设该块的标签名为section 于是: function ge() { var m =document.documentElement.client
如果没接触过dojo,或者是dojo的gridx控件,请查看我之前几篇博客,写的已经非常详细了 最重要的,更新grid中指定单元格的值,请拉到最后看(59) 至此,grid表格日常所需的常见功能已经基本完结。如果有其他功能需求,请评论提出。 (54)获得某列的name属性 代码: grid.column(2).name(); 效果: ①获得第2+1=3列的na
如果没接触过dojo,或者是dojo的gridx控件,请查看我之前几篇博客,写的已经非常详细了 最重要的,更新grid中指定单元格的值,请拉到最后看(59) 至此,grid表格日常所需的常见功能已经基本完结。如果有其他功能需求,请评论提出。 (54)获得某列的name属性 代码: grid.column(2).name(); 效果: ①获得第2+1=3列的na
如果没有阅读过gridx表格的基本运用教程,建议先阅读这篇(4天点击量已经接近5k): http://blog.csdn.net/qq20004604/article/details/51170919 里面很详细的说明了gridx表格的创建,常用模块,和基本使用。 如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article
如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo。(当然,本篇也考虑了未使用过dojo的人,可以只阅读该链接关于dojo下载的部分,以获得dojo) 关于dojo的下载,请查看: https://dojotoolkit.org/download/
如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo。 关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论、或者站内信,我会尽快回复。
(20)事件触发的顺序 假如文档中有多个脚本(例如自动执行的脚本),那么他们执行是有一定的顺序的(在HTML文档之中): ①先执行<head>内的<script>标签。因此,这里的js脚本通常是嵌入代码、指向JS文件,可以在这里定义其后要使用的函数; ②其次是执行<body>内的script标签; ③然后是执行触发的脚本内容,例如在button按
(17)查看复选框是否被选中 复选框为: <input type="checkbox" name="yingmingliu"id="yingmingliu" value="yingmingliu"/> jq语法为: $("#yingmingliu").is(':checked') 如果选中,返回true,如果没有被选中,返回false。 查看复选框