① jstree中是否提供了方法判斷一個根節點有多少子節點看了參考文檔貌似沒有。求高手賜教
在DhtmlXtree中可以用tree.getLeafCount(itemId)獲取節點下的子節點數,如果你想計算的是根節點下所有的子節點的話,可以先用上面的計算出根節點下的子節點數然後在有循環判斷這些子節點中那個有孩子節點然後在根據tree.getLeafCount(itemId)計算此節點下的位元組點數,依次循環直至最後。
② js如何獲取某元素內節點的個數
(1)如獲得id為test標簽子元素的個數:
document.getElementById("test").ChildNodes.length
document.getElementById('test').children.length
(2)上面兩種方法皆可來獲得版子元素的個數權,但是要注意各個瀏覽器的差異性,也得斟酌下差異性
③ javascript中,如何知道XML文檔中的節點數量
得到這個xml對象
var arr = xml對象.getElementsByTagName("RS_ROW");
arr就是這個陸明節點的所有對象,arr.length就是一返腔共有多少個RS_ROW節早世告點
④ js 怎樣返回當前節點是第幾個
$(function(){
$("ul.area li").click(function(){
alert($(this).index('ul.area li'));
});
});
如果不給 .index()
方法傳遞參數,那麼返回值就是這個jQuery對象集合中第一個元素相對於其同輩元素的位置。
如果參數是一組DOM元素或者jQuery對象,那麼返回值就是傳遞的元素相對於原先集合的位置。
如果參數是一個選擇器,銷答那麼返回飢物值就是原先元素相對於選擇器匹配元素中的位置。如果找不爛斗液到匹配的元素,則返回-1。
具體請參考示例。
⑤ javascript怎麼獲取獲取一個節點的所有子節點
$(function(){
$(".navbar-inverseli").each(function(index){
if($(this).children().text().indexOf("主頁")>=0){
$(this).addClass("active");
}
});
});
這個是獲取ul下的li,然後設置樣式。
⑥ js怎樣添加、移除、移動、復制、創建和查找節點
添加節點append;移除節點removeChild;移動節點:var sdds=document.getElementById;創建節點createTextNode();查找節點:document.getElementsByTagName。
⑦ js怎麼獲取div里的元素個數
js獲取div里的元素個數方法是:先得到父元素,再得到父元素下的某標簽類別的子元素,最後統計出子元素的長度就可以簡單實現了。
⑧ 用JS獲取某一ID下的指定class的結點的個數
var a = function (node,class) {
var p = document.getElementById(node).childNodes, g = [], c = class;
for(var i = 0,pl = p.length;i<pl;i++){
if(p[i].className === c) g.push(p[i]);
}
return g;
}
⑨ js之原生節點操作
鏈接地址: http://blog.csdn.net/hj7jay/article/details/53389522
http://blog.csdn.net/terrychinaz/article/details/8492092
1、節點查找API節點:
Node是一個介面,中文叫節點,很多類型的DOM元素都是繼承於它,都共享著相同的基本屬性和方法。常見的Node有 element,text,attribute,comment(注釋節點),document 等。
{
ELEMENT_NODE: 1, // 元素節點
ATTRIBUTE_NODE: 2, // 屬性節點
TEXT_NODE: 3, // 文本節點
COMMENT_NODE: 8, // 注釋節點
DOCUMENT_NODE: 9, // 文檔
DOCUMENT_TYPE_NODE: 10,
DOCUMENT_FRAGMENT_NODE: 11, // 文檔碎片
}
通常情況下,只需要了解上面的幾個就行了。
2、節點查找API
document.getElementById :根據ID查找元素,大小寫敏感,如果有多個結果,只返回第一個;
document.getElementsByClassName :根據類名查找元素,多個類名用空格分隔,返回一個 HTMLCollection 。注意兼容性為IE9+(含)。另外,不僅僅是document,其它元素也支持 getElementsByClassName 方法;
document.getElementsByTagName :根據標簽查找元素, * 表示查詢所有標簽,返回一個 HTMLCollection 。
document.getElementsByName :根據元素的name屬性查找,返回一個 NodeList
document.querySelector :返回單個Node,IE8+(含),如果匹配到多個結果,只返回第一個。
document.querySelectorAll :返回一個 NodeList ,IE8+(含)。
document.forms :獲取當前頁面所有form,返回一個 HTMLCollection ;
這里順便提一下:querySelector與getElement 之類的區別:
寫法不同,最大的區別就是getElement 之類的只能接受的參數是id,class,name之類的,而querySelector接受的參數則擴展到了css的選擇器【必須嚴格按照css選擇器寫法來寫,不然拋出異常】,可以用任意的選擇器來描述選擇的東東。getElement***返回值是一個 Live Node List(動態),querySelector返回的是 Static Node List(靜態)。
什麼是NodeList呢?
<pre>NodeList 本質上是一個動態的 Node 集合,只是規范中對 querySelectorAll 有明確要求,規定其必須返回一個靜態的 NodeList 對象。</pre>
看下面:
html:
<p class="lost">1</p>
<p class="lost">2</p>
js:
var query2 = document.querySelectorAll('.lost');
var query3 = document.getElementsByClassName("lost");
console.log(query2);//列印出的原型是NodeList
console.log(query3);//HTMLCollection
返回的是NodeList /HTMLCollection?
實際上,HTMLCollection 和 NodeList 十分相似,都是一個動態的元素集合,每次訪問都需要重新對文檔進行查詢。兩者的本質上差別在於,HTMLCollection 是屬於 Document Object Model HTML 規范,而 NodeList 屬於 Document Object Model Core 規范。
這里又有個問題:NodeList 和HTMLCollection 的區別是什麼呢?
HTMLCollection是元素集合,而NodeList是節點集合(既可以包含元素,也可以包含文本節點)。所以 node.childNodes 返回 NodeList,而 node.children 和 node.getElementsByXXX 返回 HTMLCollection 。children是Element的屬性,只返回的是html節點。childNodes是Node的屬性,返回的是制定元素的所有的子元素集合的節點,包括html節點,文本節點,屬性節點,注釋節點等等。
例子:
html:
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
js:
var ul = document.getElementsByTagName('ul')[0];
var lis1 = ul.childNodes,//NodeList
lis2 = ul.children;//htmlcollection
console.log(lis1.toString(), lis1.length); // "[object NodeList]" 9
console.log(lis2.toString(), lis2.length);//[object HTMLCollection] 4
上面的nodelist節點把換行也當作了一個個的空白文本節點了,所以返回的是9,而htmlcollection卻不會。querySelectorAll 的返回值是一個靜態的 NodeList 對象,而 getElementsBy ***系列的返回值實際上是一個 HTMLCollection 對象 。
<pre>
如果作為NodeList返回,以下情況將會被當作文本節點處理:
⑩ javascript的節點問題
childNodes獲得的是所有的標簽節點和文本節點,而children獲得的只是顫爛標簽節點。
這也就是說,childNodes獲得的除了三個div節點外,節點與節點之間的三個回車換行爛模符也被計算在內了,因為它們也是文本啊:
<divid="parentDiv">這里一個回車換行符
<divid="d1">第茄歷漏一個div</div>這里也是一個回車換行符
<divid="d2">第二個div</div>這里也是一個回車換行符,總共三個
<divid="d3">第三個div</div></div>
如果把回車換行去掉:
<divid="parentDiv"><divid="d1">第一個div</div><divid="d2">第二個div</div><divid="d3">第三個div</div></div>
那麼兩種方法計算的節點數就相同了(都是3)