js-DOM-页面元素的兼容性、常用事件、节点
页面元素的兼容性:
所谓的兼容性指的就是当前浏览器是否支持当前对象的属性或是方法,如果支持就是兼容,如果不支持就是不兼容。
举个例子:
/**
* 设置页面标签之间的文本内容的兼容性写法
* @param obj
* @param value
*/
function setInnerText(obj,value){
if(obj.innerText){
obj.innerText = value;
}else {
obj.textContent = value;
}
}
var txt ={ //将与文本相关的封装到一个对象当中,之前的函数就是现在的对象的方法
getInnerText: function(obj){
if(obj.innerText){ //IE8及之前的早期浏览器版本支持的
return obj.innerText;
}else {
return obj.textContent; // 火狐早期版本支持的
}
},
setInnerText:function(obj,value){
if(obj.innerText){
obj.innerText = value;
}else {
obj.textContent = value;
}
}
};
常用事件小结及页面元素属性的设置:
常用事件:onclick 鼠标单击
ondblclick 鼠标双击
onkeyup 按下并释放键盘上面的一个键时触发
onchange 文本内容或下拉菜单中的内容发生改变时触发
onfocus 获得焦点,表示文本等获得鼠标光标
onblur 失去焦点,表示文本框等失去鼠标光标
onmouseover 鼠标悬停,鼠标停留在图片上方等
onmouseout 鼠标移出,离开所在图片的区域
onload 网页文档加载时间
onunload 关闭网页时
onsubmit 表单提交时
元素属性的设置与改变:
文本框的禁用:
<input type="text" value="请输入一个值:" id="txt"/>
(事件省略) 当txt.disable=true;时文本框被禁用;当txt.disable=false;时文本框被解除禁用。
获得把文本框的焦点时:
文本框背景颜色的设置: txt.style.backgroundColor=颜色;
边框颜色的设置: txt.style.borderColor=颜色;
选择框(checkbox):
var inputs=j_tb.getElementsByTagName("input");
|
设置或返回 checkbox 是否应被选中 |
当 inputs[i]..checked=true;表示被选中;当inputs[i].checked=false;时表示未被选中。
自定义属性:
<input type="text" class="ip" id="txt" value="123" aa="258"/>
<script>
var txt = document.getElementById("txt");
txt.mm = "258"; // 这里可以通过 JS来设置自定义属性的
console.log(txt.type);
console.log(txt.id);
console.log(txt.value);
console.log(txt.aa); // JS只能获取标签对象的原有属性,无法获得自定义属性
console.log(txt.mm); //此处可以获得js设置的自定义属性
// 通过对象.的方式是无法获得标签 元素的自定义属性的
</script>
节点:
节点的规定:DOM 是这样规定的:
- 整个文档是一个文档节点
- 每个 XML 标签是一个元素节点
- 包含在 XML 元素中的文本是文本节点
- 每一个 XML 属性是一个属性节点
- 注释属于注释节点
<div class="box" id="box">
<ul id="ul">
<li>1111</li>
<li>2222</li>
<li id="li">3333</li>
<li>4444</li>
</ul>
</div>
<script>
var ul = document.getElementById("ul");
console.log(ul.parentNode); //直接获得ul的父级元素节点
var lis = ul.childNodes; // 获得所有的子节点,包括文本节点
for(var i=0;i<lis.length;i++){
console.log(lis[i]);
}
console.log(lis.length); //长度为9
var lis2 = ul.children; // children只会获得ul内元素节点
console.log(lis2.length); //长度为4
for(var i=0;i<lis2.length;i++){
console.log(lis2[i]);
}
</script>
nodeTypes - 有名常数,nodeName与 nodeValue属性返回的值:
标签(ELEMENT_NODE)的节点类型是 1;
节点的名字是:对应的标签名字
标签的节点值:null
属性(ATTRIBUTE_NODE)的节点类型是:2;
它的名字是:属性名;
它的节点值是:属性值;
文本(TEXT_NODE)的节点类型是:3
它的名字是:#text
他的值是:文本的内容。(无内容就为空)
兄弟节点:
<div class="box" id="box">
<ul id="ul">
<li>1111</li>
<li>2222</li>
<li id="li">3333</li>
<li>4444</li>
</ul>
</div>
<script>
var li = document.getElementById("li");
console.log(li.nextSibling); // 下一个紧邻节点,chrome 火狐都支持的,只不过呢,有可能 会获得文本节点,IE8及之前的浏览器会忽略空白文本节点,如果文本有内容,也会获得到
console.log(li.nextElementSibling);// 谷歌和火狐都可以获得下一个紧邻的元素节点,而IE8及之前的版本不支持
console.log(li.previousSibling);// 上一个紧邻节点,chrome 火狐都支持的,只不过呢,有可能 会获得文本节点,IE8及之前的浏览器会忽略空白文本节点,如果文本有内容,也会获得到
console.log(li.previousElementSibling);// 谷歌和火狐都可以获得下一个紧邻的元素节点,而IE8及之前的版本不支持
</script>
js-DOM-页面元素的兼容性、常用事件、节点的更多相关文章
- js实现页面元素随着内容的滚动而滚动
CreateTime--2017年9月4日16:55:06 Author:Marydon js实现页面元素随着内容的滚动而滚动 分析: CSS样式,使用绝对定位确定好页面元素在屏幕的位置(如:正中 ...
- Selenium with Python 005 - 调用js操作页面元素
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...
- F12修改html进行本地js操作页面元素
F12修改html进行本地js操作页面元素
- Js之Dom学习-三种获取页面元素的方式、事件、innerText和innerHTML的异同
一.三种获取页面元素的方式: getElementById:通过id来获取 <body> <input type="text" value="请输入一个 ...
- js获取页面元素距离浏览器工作区顶端的距离
先介绍几个属性:(暂时只测了IE和firefox,实际上我工作中用到的最多的是chrome) 网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度) (javascript) ...
- js为页面元素添加水印
近期有需求为页面部分区域添加上水印,通过在网上找到了js为页面添加水印的方法,后来经过自己的改进,可以实现为页面部分元素添加水印,最终效果如下图: 代码如下: function watermark(s ...
- JS获取页面,元素,窗口和返回页面,元素,窗口的宽高以及滚动值
jquery获取页面,元素,窗口的宽高以及滚动值 //获取浏览器显示区域(可视区域)的高度 : $(window).height(); //获取浏览器显示区域(可视区域)的宽度 : $(window) ...
- 微信小程序tips集合:无法输入文字/随时查看页面/元素审查/点击事件/数据绑定
1:编辑文档无法输入文字 出现这种情况一般是因为之前编辑的文档未保存,所有在其他文档输入的时候会自动输入到未保存的文档中,在文档暂时编辑完毕后要ctrl+s随手保存,不然会出现无法打字情况 2: 随时 ...
- 【JavaScript】案例三:使用JS完成页面定时弹出广告——事件(onload)
事件(onload) *注意点: 变量加var局部变量,不加var全局变量 setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭. 返回值:返回 ...
- js 改变页面元素的内容
改变页面标签里的内容 (方法) innerText innerHTML (常用) 代码示例 <div></div> <p> 我是文字 <span>1 ...
随机推荐
- 用ping命令来模拟traceroute的功能
ping -n 1 -r 9 qq.com 正在 Ping qq.com [163.177.65.160] 具有 32 字节的数据:来自 163.177.65.160 的回复: 字节=32 时间=11 ...
- java堆内存和栈内存的处理
前段时间学习二叉树在处理删除操作的时候遇到一个头疼的问题:删除节点的时候明明已经置null了可树上该节点依旧存在,还必须执行node.father.left = null;才可以删除node节点,寻找 ...
- CSS3属性transition
CSS3 Transitions 指定过渡 语法: transition: property duration timing-function delay; 参数一: transition-p ...
- log4j按级别输出日志文件
log4j.properties: BASE_DIR= /home/admin/preprocess-tmc-city/logs log4j.rootLogger=debug,stdout,debug ...
- JavaScript基础篇
写的不错,转 http://www.cnblogs.com/suoning/p/5656403.html
- Thinkphp源码分析系列(一)–入口文件
正如官方文档上所介绍的,thinkphp使用单一入口,所有的请求都从默认的index.php文件进入.当然不是说一定非得从index.php进入,这应该取决于你的服务器配置,一般服务器都会有默认的首页 ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- HIS与CIS的区别与联系
医院的医疗信息系统总体可以分为两类:一类是关于医院管理运作的,另一类是关于临床医疗护理的,即面向医院管理和病人管理,前者被称为HIS(医院信息系统),后者被称为CIS(临床信息系统).HIS是以经济核 ...
- 错误:Unsupported major.minor version 51.0(jdk版本错误)的解决方法
错误:Unsupported major.minor version 51.0(jdk版本错误)的解决方法 java.lang.UnsupportedClassVersionError: org/ap ...
- Angular JS中 Promise用法
一.Promise形象讲解A promise不是angular首创的,作为一种编程模式,它出现在1976年,比js还要古老得多.promise全称是 Futures and promises. 而在j ...