一、JavaScript中三大块
1、JavaScript包括三大块:
ECMAScript:JS的核心语法(ES规范 / ECMA-262标准)
DOM:Document Object Model(文档对象模型:对网页当中的节点进行增删改的过程。)HTML文档被当做一棵DOM树来看待。
var domObj = document.getElementById(“id”);
BOM:Browser Object Model(浏览器对象模型)
关闭浏览器窗口、打开一个新的浏览器窗口、后退、前进、浏览器地址栏上的地址等,都是BOM编程。
2、DOM和BOM的区别和联系?
BOM的顶级对象是:window
DOM的顶级对象是:document
实际上BOM是包括DOM的!
二、实例演示
1、获取文本框的value
<!--value是一个属性-->
document.getElementById("text").value
2、innerHTML和innerText操作div和span
innerText和innerHTML属性有什么区别?
相同点:都是设置元素内部的内容。
不同点:
innerHTML会把后面的“字符串”当做一段HTML代码解释并执行。
innerText,即使后面是一段HTML代码,也只是将其当做普通的字符串来看待。
<script type="text/javascript">
window.onload = function(){
document.getElementById("btn").onclick = function(){
var text = document.getElementById("div1");
//text.innerHTML = "<font color='red'>用户名不能为空!</font>";
text.innerText = "<font color='red'>用户名不能为空!</font>"
}
}
</script>
<input type="button" value="设置div中的内容" id="btn"/>
<div id="div1"></div>
3、关于正则表达式
怎么创建正则表达式对象,怎么调用正则表达式对象的方法?
第一种创建方式:
var regExp = /正则表达式/flags;
第二种创建方式:使用内置支持类RegExp
var regExp = new RegExp(“正则表达式”,“flags”);
关于flags:
g:全局匹配
i:忽略大小写
m:多行搜索(ES规范制定之后才支持m。)当前面是正则表达式的时候,m不能用。只有前面是普通字符串的时候,m才可以使用。
正则表达式对象的test()方法?
true / false = 正则表达式对象.test(用户填写的字符串);
true : 字符串格式匹配成功
false: 字符串格式匹配失败
<script type="text/javascript">
var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var ok = emailRegExp.test(email);
</script>
4、去除字符串的前后空白trim
<script type="text/javascript">
// 低版本的IE浏览器不支持字符串的trim()函数,怎么办?
// 可以自己对String类扩展一个全新的trim()函数!
// js里面没有重载机制,扩展之后只会覆盖之前的trim方法
String.prototype.trim = function(){
// this代表当前字符串
return this.replace(/^\s+/,"").replace(/\s+$/,"");
}
var username = document.getElementById(