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");

checked


设置或返回 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>
时间: 2024-10-22 13:17:37

js-DOM-页面元素的兼容性、常用事件、节点的相关文章

js获取页面元素位置函数(跨浏览器)

function getElementPos(elementId) { var ua = navigator.userAgent.toLowerCase(); var isOpera = (ua.indexOf('opera') != -1); var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof var el = document.getElementById(elementId); if(el.par

Js之Dom学习-三种获取页面元素的方式、事件、innerText和innerHTML的异同

一.三种获取页面元素的方式: getElementById:通过id来获取 <body> <input type="text" value="请输入一个值:" id="txt"/> <input type="button" value="按钮" id="btn"/> <script> var txt=document.getElementB

js获取页面元素距离浏览器工作区顶端的距离

先介绍几个属性:(暂时只测了IE和firefox,实际上我工作中用到的最多的是chrome) 网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度) (javascript)        document.documentElement.scrollTop //firefox (javascript)        document.documentElement.scrollLeft //firefox (javascript)        document.body.scro

js获取页面元素宽度、高度的方法总结

1.offsetWidth.width().clientWidth.scrollWidth offsetWidth是对象本身的宽度,包括边线滚动条等 clientWidth是对象能够被看到的宽度 clientWidth是对象内容的实际宽度 ps:$("#id").offsetWidth会返回undefined.原因:jquery选择器选择出来的元素都是数组对象,这些变量都是对一个明确的对象而言,正确写法应该是$("#id")[0].offsetWidth或者使用js

使用JS控制页面元素位置移动

主要使用一下两个函数 parseInt() substr() 首先获取元素的ID var j = document.getElementById("ID"); 然后获取位置属性 var top = j.style.top //这里以控制元素上下位置距离,控制左右的话把top换成left即可 需要注意的是,使用此方法需要把要移动的元素设置为绝对定位,样式中添加    position:absolute; 现在开始移动元素位置了,因为使用方法获取的元素应该为(“0px”)为string字符

JS获取页面元素并修改

//实现代码如下,非常简单<script> (function(){ var ele = document.getElementsByTagName("ul"); //获取页面上所有的ul元素 var target; for(var i in ele){ if("art-list"==ele[i].className){ //找到类名位art-list的ul元素 target = ele[i]; break; } } var li_arr = targe

js添加页面元素

js动态创建html元素需要使用到下面这些常见的js方法. getElementById();//返回带有指定 ID 的元素. getElementsByTagName();//返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组). getElementsByClassName();//返回包含带有指定类名的所有元素的节点列表. appendChild();//把新的子节点添加到指定节点. removeChild();//删除子节点. replaceChild();//替换子节点. i

JS判断页面元素全部加载完成

*第一种获取所有图片加载完成的方法 function alertComplete() { var isImg=false; var img=document.getElementsByTagName('img'); for(var i=0;i<img.length;i++){ if(img[i].complete){ isImg=img[i].complete; }; }; return isImg; }

通过JS控制各种元素的点击事件的事件间隔

<script type="text/javascript"> document.write(sumdemo(1, 2)); var btn = document.getElementById('btn'); btn.onclick = function() { this.disabled = 'disabled'; setTimeout(function() { btn.disabled = ''; }, 1000);//1秒后才能点击 }; </script>