1.当通过js拿到一个对象时,又想使用jquery中的方法,如果直接用js拿到的对象,然后再用jquery方法,是不起作用的,而应该如下处理:
var i=$(window.parent.document.getElementById("documentList_iframe"));
i.css("height","1000px");
2.jquery中data方法的使用:data() 方法向被选元素附加数据,或者从被选元素获取数据。
例如:$("#catalogSelect").data("isDelOriginal","true");向id为catalogSelect的对象中附加数据,然后通过$("#catalogSelect").data("isDelOriginal")来获取数据。
3.html dom的学习:
节点
根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
- 整个文档是一个文档节点
- 每个 HTML 标签是一个元素节点
- 包含在 HTML 元素中的文本是文本节点
- 每一个 HTML 属性是一个属性节点
- 注释属于注释节点
Node 层次
节点彼此都有等级关系。
HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。
下面这个图片表示一个文档树(节点树):
查找并访问节点
你可通过若干种方法来查找您希望操作的元素:
- 通过使用 getElementById() 和 getElementsByTagName() 方法
- 通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性
document.getElementById('maindiv').getElementsByTagName("p");
节点信息
每个节点都拥有包含着关于节点某些信息的属性。这些属性是:
- nodeName(节点名称)
- nodeValue(节点值)
- nodeType(节点类型)
nodeName
nodeName 属性含有某个节点的名称。
- 元素节点的 nodeName 是标签名称
- 属性节点的 nodeName 是属性名称
- 文本节点的 nodeName 永远是 #text
- 文档节点的 nodeName 永远是 #document
nodeValue
对于文本节点,nodeValue 属性包含文本。
对于属性节点,nodeValue 属性包含属性值。
nodeValue 属性对于文档节点和元素节点是不可用的。
nodeType
nodeType 属性可返回节点的类型。
元素 | 1 |
属性 | 2 |
文本 | 3 |
注释 | 8 |
文档 | 9 |
DOM树结构表现为不同种类的Node对象的一棵树。Node接口定义了遍历和操作树的属性和方法。Node对象的childNodes属性返回节点的孩子的一个列表,并且firstChild,lastChild,nextSibling,previousSibling和parentNode属性提供了遍历节点的树的一种方法。像appendChild(),removeChild(),replaceChild()和insertBefore()
这样的方法能够向一个文档树中添加节点或者从一个文档树中移除节点。
DOM树的大部分节点是表示标记的Element对象和表示文本串的Text对象,用Element接口的getAttribute()方法,setAttribute(),removeAttribute()方法可以查询,设置并删除一个元素的属性,设置属性时,不仅可以运用这种方式来设置属性:
var m=document.createElement("div");
m.setAttribute("style","position:absolute;border:1px solid red;"+"left:"+x+"px;"+"top:"+y+"px;");
还可以运用这种方式来设置属性:
var m=document.createElement("div");
m.style.position="absolute";
m.style.border="1px solid red";
m.style.visibility="visible";
因为表示html属性的DOM元素定义了对应于每个标准属性的js属性
文本节点具有data属性,来获得文本,也可以使用appendData(), insertData(), deleteData()和replaceData()方法在一个Text节点中附加,插入,删除或替换文本。
注意:1之前我在写代码时,错误的认为只要用createElement()方法创建的文档元素,就能自动加入到DOM树种,这是错误的,你用这个createElement()方法创建的只是一个文档节点或元素,你要让它成为这个文档的一部分,还是必须使用appendChild()将其加入到某节点中。
2.在 js中设置元素的class属性时,要注意是用className属性
给文档添加内容:document.createElement()和document.createTextNode()方法创建新的Element节点和Text 节点,但要知道元素节点的innerHTML属性,它可以做相当高效的事情,例如上面写的,完全可以这么简单的写:
m.innerHTML="<span style='color:red;'>改变</span>";