DOM与jquery的区别(二:元素属性与CSS样式表)

来源:互联网 发布:科目三模拟驾驶软件 编辑:程序博客网 时间:2024/04/29 22:02

元素属性:
DOM:
即便每个节点对象都有attribute方法,然而只有元素节点才能有特性。元素节点的attributes属性其实是NameNodeMap(NamedNodeMap 接口),它提供了一些用于访问和处理内容的方法,包括:

  • getNamedItem(name) ———— 返回 nodeName 属性值等于name的节点;(要获取该节点属性的值可以用” .value”)
  • removeNamedItem(name) ———— 删除nodeNamedItem 属性值等于 name 的节点;
  • setNamedItme(node) ———— 将 node 添加到列表中,按其 nodeName属性进行索引;
  • item(pos) ———— 返回在位置 pos 的节点;
    因为Attr节点也有一个完全等同于nodeValue属性的value属性,并且有name属性和nodeName属性保持同步,因此我们可以随意使用这些属性来修改节点特性,对此,DOM又定义了三个元素方法帮助访问特性:
  • getAttribute(name) ———— 等同于 attributes.getNamedItem(name).value;
  • setAttribute(name,newValue) ————等同于 attributes.getNamedItem(name).value=newValue;(还可以用于添加新的属性与属性值,不足是两个参数必须写完,比如disabled就必须写 setAttribute(“disabled“,“disabled”));
  • removeAttribute(name) ———— 等同于attributes.removeNamedItem(name) 。
    通过这些方法就可以直接处理特性值,接下来我们在来看看通过jquery来控制节点特性吧:
    jquery:
    就属性而言jquery可以通过属性选择器来定位到元素,通过attr( )方法设置指定节点的属性值;
    ("[attribute]"),(” [attribute=’value’] “),在之前也可以指定所在的元素,例如:(input[name=newsletter])jqueryattr便.attr(name|pro,val|fn)name/pro("img").attr("title", function() { return this.src }),把src属性的值设置为title属性的值。另外如果设置多个属性圆弧中间要使用花括号并用逗号分隔,例如: $(“img”).attr({ src: “test.jpg”, alt: “Test Image” });
    值得注意的是在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,使用prop()方法,使用与attr()方法完全一致。

单从元素属性来讲,DOM与jquery的获取与设置属性值只是使用的方法不同,但在元素属性名称及值的获取略有不同,在DOM在class属性是className而jquery就是class,DOM通过getNamedItem(name) .value而jquery要通过val( )方法获取值,例如: (input[value=666]).val()CSSCSSDOMDOMIE4.0StyleCSSCSSStyle线backgroundcolorstylestyle.backgroundColorcssdivcss1pxsolidblackvaroDiv=document.getElementById(div1);oDiv.style.border=1pxsolidblack;jssetAttributeclassName,newNameclass;stylehover使onmouseoveronmouseupjqueryjqueryjquerycss()使attr()div(“#div1”).css(“border”,”1px solid black”);这个方法就可以同时设置样式了,同样的间要使用花括号并用逗号分隔。
与DOM不同的是css样式的名称就和css完全一致了而不是DOM的驼峰命名法。

1 0