`

js点滴

 
阅读更多
onchange 事件会在域的内容改变时发生。支持该事件的HTML 标签:<input type="text">, <select>, <textarea>。一般文本框的onchange事件的触发需要两个条件:1.输入框的值发生了改变;2.该文本框失去了焦点,而真正的事件的触发却是发生在该文本框失去焦点的时候,如果需要当值改变的时候就去触发,则需要用onpropertychange或者是oninput。 
 
onpropertychange:IE下属性改变事件;现代浏览器 相似的事件是oninput,但是oninput只是文本框内容(value)属性改变事件。
 
onkeyup事件会在键盘按键被松开时发生。
onkeydown事件会在用户按下一个键盘按键时发生。
onkeypress事件会在键盘按键被按下并释放一个键时发生。
 
appendChild()或insertBefore()方法:都是剪切方式操作DOM;
在各种浏览器下面,innerHTML都要比createElement效率更高的。innerHTML属于‘静态’的操作,消耗内存小一点。creatElement相比之下会更消耗内存。


javascript的类型判断 : typeof操作符和instanceof操作符结合起来进行判断。
typeof返回的是字符串,有6种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"


自增器:
function addFactory(){
     var i = 0;
     this.getI = function(){
         return i++;
     }
}
调用:
var add = new addFactory();
add.getI();  //return 0
add.getI();  //return 1
add.getI();  //return 2
...


scrollTop:显示的“本来应该显示不出来”的高度。比如外层高200,内层高300,此时会出现滚动条,并且scrollTop值的范围是0到100(滚动条在最上面时是0,最下面是100)
可以直接取某个div的scrollTop值,也可以直接为div的scrollTop属性赋值;
用法说明 : http://www.jb51.net/article/18368.htm


获取页面元素距离网页顶部的高度
//获取顶端距离:
function GT(o){
	T=o.offsetTop;
	if(o.offsetParent!=null)T+=GT(o.offsetParent);
	return T;
}
//获取左边距离:
function GL(o){
	L =o.offsetLeft;
	if(o.offsetParent!=null)L+=GL(o.offsetParent);
	return L;
}
其中的o是需要得到数据的html对象,可以通过document.getElementById或者event.srcElement等办法得到。
说明一下:html的元素属性中没有刻意直接得到顶端距离的属性,但是有对于外层对象的距离,所以通过方法递归即可得到所需要的结果。


js动态拼装DOM元素设置触发方法时,方法中传参,例如:
'<li onclick="close(this,20,' + a + ',' + '\''+ b + '\'' + ',' + '\'' +c+'\'' + ');"/>'
像a,前后没有加转义单引号,称为直接传参(我自己取的名字,哈哈);
像b与c,前后加了单引号,转义后的'\''  这种方式称为单引号传参,哈哈;
不同类型的变量经过这两种方式传参后,效果是不用的,请看:
                      单引号传参                     直接传参
字符串:       正确传递,传递后为String            错误!传递后为object
数字:         传递后为String                     正确传递,传递后为number
布尔型:       传递后为String                     正确传递,传递后为boolean
对象:         传递后为String,获取不到属性值!     运行时报错!!!

结论:1.运用单引号传参方式,会把参数自动转为string类型;2.字符串要用单引号传参,数字以及布尔型的数据要用直接传参;
     

/**
 * 获取textarea或input文本框内光标位置 
 * @param  obj : dom对象
 * @return  返回光标位置
 */
function getSelectionStart(obj){
	var e = obj;
	if (e.selectionStart) {
		return e.selectionStart;
	} else if (document.selection) {
		e.focus();
		var r = document.selection.createRange();
		var sr = r.duplicate();
		sr.moveToElementText(e);
		sr.setEndPoint('EndToEnd', r);
		return sr.text.length - r.text.length;
	}
	return 0;
}

//下面是案例:将字符串插入到文本域光标所在的位置
var strIndex = getSelectionStart(textDomObj); //textDomObj为文本域dom对象
if(strIndex==0){
	textDomObj.value = '要插入的str' + textDomObj.value;
}else if(strIndex==textDomObj.value.length){
	textDomObj.value = textDomObj.value + '要插入的str';
}else{
	textDomObj.value = textDomObj.value.substring(0,strIndex) + '要插入的str' + textDomObj.value.substring(strIndex);
}


split() 方法用于把一个字符串分割成字符串数组。

var aaa = 'xxx';
var bbb = 'yyy|zzz';

var arr = aaa.split("|");
alert(arr.length); // 1
alert(arr.join(',')); // xxx

arr = bbb.split("|");
alert(arr.length); // 2
alert(arr.join(',')); // yyy,zzz



数组的indexOf方法:获得数组中元素的下表,不存在返回-1
在低版本IE(IE8以及以下)中,js数组不支持indexOf方法。其他浏览器(Firefox, Chrome, IE9以及以上版本)都支持。
分享到:
评论

相关推荐

    js素材点滴记录和分享

    【标题】"js素材点滴记录和分享"涉及的是JavaScript编程领域的知识,主要集中在JavaScript的应用实践和素材积累。JavaScript,简称JS,是一种轻量级的解释型编程语言,广泛用于网页和网络应用开发,能实现动态内容、...

    点滴空间整站程序 v1.6

    4. **JavaScript**:`.js`文件用于前端交互和增强用户体验。 5. **数据库连接和配置**:可能有`.config`或`.inc`文件,包含数据库连接信息和其他系统配置。 6. **数据库文件**:如`.mdb`(Access数据库)或`.sql`...

    点滴空间 v1.0 优雅版.rar

    2. **用户界面(UI)**:UI由HTML、CSS和JavaScript组成,负责网站的布局和交互效果。ASP文件可以嵌入在HTML中,通过服务器端脚本动态生成内容。 3. **后端逻辑**:这是ASP的核心,处理用户的请求,执行业务逻辑,...

    Nodejs学习点滴

    这篇名为“Nodejs学习点滴”的博文,结合了“源码”和“工具”两个标签,暗示了作者可能分享了关于Node.js核心原理以及相关开发工具的见解和经验。接下来,我们将深入探讨Node.js的核心特性,以及`build.js`、`Dom...

    Ext点滴

    标题“Ext点滴”可能指的是对Ext JS框架的深入理解和应用分享。Ext JS是一个广泛使用的JavaScript库,用于构建富客户端Web应用程序。它提供了丰富的组件库,包括数据绑定、模型、视图、控制器等概念,帮助开发者构建...

    基于HTML和JavaScript的个人博客设计源码

    本设计源码提供了一个基于HTML和JavaScript的个人博客,包含241个文件,其中包括228个html页面文件,7个js脚本文件,2个css样式文件,以及1张jpg图片,1张svg图片,1张png图片和1张gif图片。该项目旨在为个人用户...

    日记工具 记录生活点滴

    10. **开发技术**:制作这样的日记工具可能涉及到的技术包括前端界面开发(如HTML、CSS、JavaScript),后端服务器管理(如Python、Java或Node.js),数据库管理(如SQLite、MySQL),以及可能的移动平台开发(如...

    js 代码优化点滴记录

    JavaScript 代码优化是提高应用程序性能的关键步骤之一。在日常编程工作中,我们经常遇到各种各样的优化技巧,这里我们将深入探讨两个常见的用例:`switch` 语句和数组索引,以及它们各自的优缺点。 首先,让我们来...

    梦颜时光记录点滴心情经历网站html源码源码资源下载整理.zip

    《梦颜时光记录点滴心情经历网站html源码》是一份专为记录个人生活点滴和心情体验而设计的网站源码资源。这份源码是开发者们进行网页设计、学习前端技术或者构建个人情感日记网站的理想起点。它包含了丰富的HTML元素...

    JavaScript 学习点滴记录

    通过使用 getElementById() 和 getElementsByTagName() 方法 通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性 有两种特殊的文档属性可用来访问根节点: document.documentElement document.body

    timeline js

    总的来说,"timeline js"是一个强大的工具,它使得创建具有专业视觉效果的时光轴变得简单易行,无论是在新闻网站展示历史事件、企业网站展示发展历程,还是个人博客记录生活点滴,都能发挥出色的效果。由于其开源...

    点滴积累1

    "点滴积累1" 本文档主要讲述了程序员的职业发展、技术栈、学习方法和思想方式等方面的知识点。 1. career development * 程序员的职业发展可以分为基础技术、工具、产品、项目等几个方面。 * 世界需要不同类型...

    JavaScript学习点滴 call、apply的区别

    在JavaScript编程中,call和apply是两个非常重要的方法,它们都用于函数调用上下文的改变。这两个方法的主要用途是可以在特定的作用域中调用函数,允许传递给函数的参数,同时也可以通过它们实现继承和多态等面向...

    JS+HTM自制挂历记事本4.2 阿杰网页版记事本4.2

    《JS+HTML自制挂历记事本4.2——阿杰网页版记事本4.2》 在当今数字化时代,个人效率工具的重要性不言而喻。阿杰网页版记事本4.2是一个集挂历、记事、个人播放器和日常流水账功能于一体的实用工具,它充分利用了HTML...

    plurk时间轴js分享

    在这个"plurk时间轴js分享"中,我们将探讨与Plurk时间轴相关的JavaScript特效及其在网页开发中的应用。 时间轴设计通常是线性的,用于组织和展示事件按时间顺序发生的情况。在Plurk的上下文中,时间轴可能包括用户...

    基于SpringBoot框架的JavaScript驱动时间线日记本设计源码

    该项目是一款基于SpringBoot框架构建的JavaScript驱动时间线日记本设计源码,整合了84个文件,其中包含49个Java源文件...该系统旨在提供一个直观易用的时间线日记本功能,适用于个人或团队记录生活和工作中的点滴回忆。

    js-library:我是付果果,这里记录我的点滴,大家共同进步,欢迎star

    js库简介js-library记录个人成长的点滴,欢迎大家进行技术交流文件结构-- arithmetic 【算法基础系列】-- booklist 【前端书籍系列】-- designPattern 【设计模式】-- flutter 【flutter系列】-- interviewQuestion ...

Global site tag (gtag.js) - Google Analytics