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 ...
随机推荐
- Java锁 到底锁的是哪个对象?
更新:在一次和一位专家的交谈中,他对一下代码能否能够成功同步,给予了否定的答案, 他的理由是”以构造函数的成员变量作为synchronized的锁,在多线程的情况下,每一个线程都持有自己私有变量的锁, ...
- Win32编程:窗口类样式+窗口外观样式+窗口显示样式
1.窗口类样式WNDCLASS.style CS_VREDRAW 提供窗口位置变化事件和高度变化事件的处理程序,功能是重绘窗口 CS_HREDRAW 提供窗口位置变化事件和宽度变化事件的处理程序,功能 ...
- 9. Sort List && Insertion Sort List (链表排序总结)
Sort List Sort a linked list in O(n log n) time using constant space complexity. H ...
- 有关RAVE报表 - 大富翁论坛20050419
部分资料来源于RAVE开发人员指南 ravedevguide5 新闻组News.Nevrona.com RAVE的官方主页 www.nevrona.com/rave KeyLife富翁笔记 作者 ...
- sql(转自http://www.imooc.com/article/2325)
http://www.imooc.com/article/2325
- spring定时器设置(转自:http://my.oschina.net/LvSantorini/blog/520049)
转自:http://my.oschina.net/LvSantorini/blog/520049<!-- MessageRequestTask类中包含了msgRequest方法,用于执行定时任务 ...
- 洛谷P3373 【模板】线段树 2
P3373 [模板]线段树 2 47通过 186提交 题目提供者HansBug 标签 难度提高+/省选- 提交 讨论 题解 最新讨论 为啥WA(TAT) 题目描述 如题,已知一个数列,你需要进行 ...
- Excel 如何按条件计数和按条件求和(如按月求和)
1.使用SUMPRODUCT进行多条件计数语法:=SUMPRODUCT((条件1)*(条件2)*(条件3)* …(条件n))作用:统计同时满足条件1.条件2到条件n的记录的个数.实例:=SUMPROD ...
- WampServer服务中MySQL无法正常启动解决方案
打开wampserver->mysql->my.ini,添加或修改innodb_force_recovery = 1 然后重启所有服务就大功告成了!
- Spring项目解决Post乱码
Java EE解决Post乱码:在web.xml中加入: <filter> <filter-name>encodingFilter</filter-name> &l ...