1. 程式人生 > >JS獲取節點的兄弟,父級,子級元素(原生和基於jquery) 、動態建立文件元素 、this和$(this)區別

JS獲取節點的兄弟,父級,子級元素(原生和基於jquery) 、動態建立文件元素 、this和$(this)區別

一、JS獲取節點的兄弟,父級,子級元素的方法

原生js

var s= document.getElementById("test");
del_ff(s);    //清理空格
var chils= s.childNodes;  //得到s的全部子節點
var par=s.parentNode;   //得到s的父節點
var ns=s.nextSbiling;   //獲得s的下一個兄弟節點
var ps=s.previousSbiling;  //得到s的上一個兄弟節點
var fc=s.firstChild;   //獲得s的第一個子節點
var lc=s.lastChild;   //獲得s的最後一個子節點

jquery下的js

$.parent(expr)  找父親節點,可以傳入expr進行過濾,比如$("span").parent()或者$("span").parent(".class")
$.parents(expr),類似於jQuery.parents(expr),但是是查詢所有祖先元素,不限於父元素
$.children(expr).返回所有子節點,這個方法只會返回直接的孩子節點,不會返回所有的子孫節點
$.contents(),返回下面的所有內容,包括節點和文字。這個方法和children()的區別就在於,包括空白文字,也會被作為一個
jQuery物件返回,children()則只會返回節點
$.prev(),返回上一個兄弟節點,不是所有的兄弟節點
$.prevAll(),返回所有之前的兄弟節點
$.next(),返回下一個兄弟節點,不是所有的兄弟節點
$.nextAll(),返回所有之後的兄弟節點
$.siblings(),返回兄弟姐妹節點,不分前後
$.find(expr),跟jQuery.filter(expr)完全不一樣。jQuery.filter()是從初始的jQuery物件集合中篩選出一部分,而jQuery.find()的返回結果,不會有初始集合中的內容,比如$("p"),find("span"),是從<p>元素開始<span>,等同於$("p span")

二、動態建立內容是所用的DOM屬性和方法

document.createElement(tagName)    
文件物件上的createElement方法可以建立由tagName制定的元素。如果以串div作為方法引數,就會生成一個div元素   
 
document.createTextNode(text)    
文件物件的createTextNode方法會建立一個包含靜態文字的節點
 
<element>.appendChild(childNode)    
appendChild方法將指定的節點增加到當前元素的子節點列表。例如可以增加一個option元素,作為select元素的子節點
 
<element>.getAttribute(name)    
獲取元素中的name屬性的值
 
 <element>.setAttribute(name, value)    
 設定元素的name屬性值
 
<element>.insertBefore(newNode,targetNode)    
將節點newNode作為當前元素的子節點傳達到targetNode元素前面
 
<element>.removeAttribute(name)    
從元素中刪除屬性name
 
<element>.removeChild(childNode)
移除子元素
 
<element>.replaceChild(newNode,oldNOde)
替換子元素

<element>.hasChildNodes()
是否有子元素

三、jquery中this和$(this)的區別
this,表示當前的上下文物件是一個html DOM物件,可以呼叫html物件所擁有的屬性,方法。
$(this),代表的上下文物件是一個jquery的上下文物件,可以呼叫jquery的方法和屬性值。

$()生成的是什麼呢?實際上$()=jquery(),那麼也就是說返回的是一個jquery的物件。
$(this)是jquery物件,能呼叫jquery的方法,例如click(), keyup()。

 $(function () {
   $('button').click(function () {
       alert(this);//this 表示原生的DOM
       //$(this)表示當前物件,這裡指的是button
   })
});

http://www.jb51.net/article/45372.htm