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 ...
随机推荐
- ubuntu14.04网络设置
修改ip: /etc/network/interfaces
- httperf学习笔记(CentOS-6.6环境下安装配置)
新工作已经找到了,最近在忙着熟悉环境,昨天领导让我接触下httperf压力测试工具 百度了下,相关的文档,准备着手配置一个测试环境基于linux系统httperf+autobench+gnuplot, ...
- Android RadioGroup设置默认选中项
今天有人问.Android 里面 RadioGroup里面有两个RadioButton怎么设置默认值? 第一个RadioButton设置 android:checked="true" ...
- CSS基础篇
写的不错,收藏 http://www.cnblogs.com/suoning/p/5625582.html
- Oracle中快速查询和操作某个用户下的所有表数据信息
一.禁止所有的外键约束 在pl/sql developer下执行如下语句:SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' | ...
- transition实现自定义tips淡入淡出效果
transition实现动画的时候,只能实现指定属性的渐变,元素显隐要通过opacity来实现: 做了一个小的demo: <!doctype html> <html> < ...
- 【MySQL】MySQL 5.7+ 版本的初始化
MySQL 5.7.7以上二进制包就不包括原data目录的初始化系统表,官网说明: http://dev.mysql.com/doc/refman/5.7/en/data-directory-init ...
- mysql之导入与导出
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据.但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏, ...
- 为窗体设置背景图片-UI界面编辑器(SkinStudio)教程
1.1. 为窗体设置背景图片 在窗体的Background属性中选择图片设置为窗体背景图片
- Raid详解
Raid详解 一.什么是RAID 磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一 ...