亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript針對DOM的應(yīng)用分析(二)

 更新時間:2012年04月15日 22:21:45   作者:  
今天第二章,繼續(xù)講獲取頁面中DOM元素。大家都知道在JQ中想獲取一個元素的兄弟元素,父級元素,子元素等等是非常方便的
其實在原生的也JS也有這些屬性。和JQ幾乎相同但是比JQ少一些。但是用起來卻比JQ麻煩一點。主要因為FF瀏覽器,因為FF會把你的換行也當(dāng)做一個DOM元素。比如說
復(fù)制代碼 代碼如下:

<div id = "dom">
<div></div>
<div></div>
</div>

我用原生的JS獲取ID為dom的元素下的子元素。用我第一章說的方法就是var a = document.getElementById("dom").getElementsByTagName("div");這個沒問題??梢詀lert(a.length)提示會是2,但是我們現(xiàn)在換一種方法獲取就是我上章提到的var b = document.getElementById("dom").childNodes;如果這樣alert(b.length)IE瀏覽器上沒問題還是2,但是在FF瀏覽器上會提示是4,這就是因為FF把換行也當(dāng)做一個元素了。
所以我們必須處理一下才能用JS的那些屬性。處理思想很簡單就是遍歷一下這些元素。把元素類型為空格而且是文本都刪除。處理函數(shù)是這樣的
復(fù)制代碼 代碼如下:

function del_space(elem){
var elem_child = elem.childNodes;
for(var i=0;i<elem_child.length;i++){
if(elem_child.nodeName == "#text" && !/\S/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)}
}}

我解釋一下這個函數(shù)
var elem_child = elem.childNodes;
把傳進(jìn)來的elem元素的子元素都扔給elem_child;
復(fù)制代碼 代碼如下:

for(var i=0;i<elem_child.length;i++){
if(elem_child.nodeName == "#text" && !/\S/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)}
}

遍歷這些子元素。如果這些元素里面有節(jié)點類型是文本并且這個文本類型節(jié)點的節(jié)點值是空的。就把它刪除

(nodeName是JS里的一個屬性,得到這個節(jié)點的節(jié)點類型,/\S/這個是非空字符在JS里的正規(guī)表達(dá)式。前面加一個感嘆號就表示是空字符。test是JS的一個方法,就是把它里面的東西和外面的東西對比一下。nodeValue表示得到這個節(jié)點里的值removeChild也是個方法就刪除外面這個元素的某個子元素)

這樣只需要在調(diào)用這些屬性之前調(diào)用這個函數(shù)把空格清理一下就能放心用了比如
復(fù)制代碼 代碼如下:

<div id = "dom">
<div></div>
<div></div>
</div>

<script>
function dom(){
var a = document.getElementById("dom");
del_space(a);調(diào)用清理空格的函數(shù)
var b = a.childNodes;獲取a的全部子節(jié)點;
var c = a.parentNode;獲取a的父節(jié)點;
var d = a.nextSbiling;獲取a的下一個兄弟節(jié)點
var e = a.previousSbiling;獲取a的上一個兄弟節(jié)點
var f = a.firstChild;獲取a的第一個子節(jié)點
var g = a.lastChild;獲取a的最后一個子節(jié)點

}
</script>

(另外說下。var b = a.childNodes;獲取的也是一個數(shù)組;所以比如我要用第一個節(jié)點就是childNodes[0];我要用第二個節(jié)點就是childNodes[1];以此類推)

到這里獲取DOM方面就算是結(jié)束了。下章就教大家如何操作DOM元素。

相關(guān)文章

  • Dom入門教程圖解 推薦

    Dom入門教程圖解 推薦

    Dom并非一種編程語言,Dom只是提供了一系列的接口,利用Dom的這些接口可以很方便的讀取,修改,刪除Html和XML文件中的標(biāo)簽元素和文本內(nèi)容.在這里我們側(cè)重于講解Dom對Html文件的操作.
    2010-08-08
  • Dom操作之兼容技巧分享

    Dom操作之兼容技巧分享

    在使用Dom操作HTML和XML時.我們時常會遇到空格問題.或許你還沒有遇到過.
    2011-09-09
  • javascript針對DOM的應(yīng)用分析(四)

    javascript針對DOM的應(yīng)用分析(四)

    從這張開始就和大家說一些實用的效果的寫法。當(dāng)然首當(dāng)其沖的就是我們可愛的TAB選項卡,用JQ寫選項卡當(dāng)然是很方便的而且方法也很多。其實用原生的JS寫選項卡方法也很多
    2012-04-04
  • 操作Dom中的子元素與兄弟元素的代碼

    操作Dom中的子元素與兄弟元素的代碼

    無論是在HTML里或XML文件里.都存在著子元素與兄弟元素的概念.那么我們?nèi)绾问褂肈om正確的操作這些元素.
    2010-10-10
  • 有關(guān)DOM元素與事件的3個謎題

    有關(guān)DOM元素與事件的3個謎題

    有關(guān)DOM元素與事件的3個謎題,學(xué)習(xí)與使用dom操作的朋友可以參考下。
    2010-11-11
  • HTML Dom與Css控制方法

    HTML Dom與Css控制方法

    HTML Dom與Css的關(guān)系,大家都知道Css是用來美化網(wǎng)頁.更改網(wǎng)頁中元素的外觀.
    2010-10-10
  • KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法

    KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法

    這篇文章主要介紹了KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法,需要的朋友可以參考下
    2016-10-10
  • 前端單元測試之UI測試功能性代碼測試教程

    前端單元測試之UI測試功能性代碼測試教程

    這篇文章主要為大家介紹了前端單元測試之UI測試及功能性代碼測試教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • js DOM 元素ID就是全局變量

    js DOM 元素ID就是全局變量

    有人在twitter上提到了:在Chrome的JavaScript終端中,你只需要輸入一個元素的ID,就可以訪問到這個元素.@johnjbarton給了解釋,這是因為所有的元素ID都是全局變量.本文再詳細(xì)解釋一下
    2012-09-09
  • DOM 中的事件處理介紹

    DOM 中的事件處理介紹

    根據(jù) W3C DOM 2 Events 描述,EventTarget 接口被所有支持 DOM 事件模型的節(jié)點(Node)實現(xiàn)
    2012-01-01

最新評論