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 ...
随机推荐
- spring component-scan filter
(参考的Spring version : 4.1.6.RELEASE) 我们通常会使用component-scan来进行bean的加载,但是它里面的实现机制却是一知半解.根据原码来理解一下,可能会更加 ...
- 每天一个 Linux 命令(4):mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录- 2.命令功能 ...
- Chap5:32– 34
32. 从 1 到 n 整数中 k (0,1, 2, 3, 4, 5, 6, 7, 8, 9)出现的次数. 时间 O(log10N) A. 当 K != 0 时: 以 n = 2014,K = 1 ...
- .NET使用一般处理程序生成验证码
运行的效果图: HTML的代码: <head> <script type="text/javascript"> function changeCode() ...
- IPTV视频基本概念
480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清 ...
- Visual Studio 中可执行文件中嵌入的清单文件
概要 本分步指南介绍如何在 Microsoft Visual Studio 2005年中的可执行文件 (.exe) 文件中嵌入的清单文件.如果您要开发"认证 Windows Vista&qu ...
- C++学习基础六——复制构造函数和赋值操作符
1.什么是复制构造函数 复制构造函数:是构造函数,其只有一个参数,参数类型是所属类的类型,且参数是一个const引用. 作用:将本类的成员变量赋值为引用形参的成员变量. 2.什么是赋值操作符 赋值操作 ...
- 第五百八十一天 how can I 坚持
也是醉了,现在买个手机都特么搞饥饿营销,吹牛B就要付出吹牛B的代价,哎,好伤感. 晚上学习也没学好.感觉人和人之间的信任怎么都没了呢..但愿是我想多了,其实就是我想多了,以后说话还是要多注意. 睡觉吧 ...
- 8天掌握EF的Code First开发系列之2 Code First开发系列之领域建模和管理实体关系
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 理解Code First及其约定和配置 创建数据表结构 管理实体关系 三种继承模式 本章小结 本人的实验环境是V ...
- JavaScript系列:Date对象
<script type="text/javascript"> var oDate = new Date(); var iYear = oDate.getF ...