1. 程式人生 > >【Jquery】- DOM 節點操作

【Jquery】- DOM 節點操作

Jquery DOM 比較

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script type="text/javascript" src="js/jquery-1.3.1.js"></script>
<script type="text/javascript">
    /*
    * jquery物件是對dom物件的一種包裝類,dom和jquery物件不可以互相呼叫(js輕量級框架)
    * 區分大小寫:jquery找不到物件的話不會報錯(dom會報錯undefine)
    */
    function show(){
        var domValue=document.getElementById("info").value;  //dom物件
        alert("dom*******"+domValue);
        var $jquery=$('#info'); //jquery物件:表示id=info所有元素集合
        var jqueryValue=$jquery[0].value;  //$jquery[0]:將jquery物件轉換成dom物件
        alert("jquery*****"+jqueryValue);
    }
</script>
</head>
<body><br>
<img alt="" src="img/1.jpg"><br>
<input type="text" id="info">
<input type="button" value="顯示" onclick="show();"/>
</body>
</html>


DOM 節點

DOM 是 Document Object Model(文件物件模型)的縮寫,瀏覽器在解析HTML文件時會將HTML文件在記憶體中對映成一個邏輯模型DOM樹,每個HTML的標籤都是該DOM樹上的葉子,瀏覽器解析時根據節點在DOM樹上的情況按照相應的規範進行渲染顯示。

HTML DOM節點操作:

定義輸入框和列表節點:

<ul id="city">
<li id="bj" value="beijing">北京</li>
<li id="sh" value="shanghai">上海</li>
<li id="gz" value="guangzhou">廣州</li>
</ul><br/>

<span style="background-color: yellow;">span01----</span>Dom Tree<span style="background-color: yellow;">----span02</span>

單個Node節點操作:

/*append:類似於DOM裡面的appendChild()函式,將新元素加入該元素內部做為子節點
 *appned:父元素內部加入子元素
 *appendTo:子元素追加到父元素內部 
 */
$("#b1").click(function(){
	
var LiNode=$("<li></li>");  //構造Li元素節點
LiNode.attr("id","sz");
LiNode.attr("value","shenzhen");
LiNode.text("深圳");
$("#city").append(LiNode);
});

/**
 * before:兄弟元素之前加入新的元素
 * after:兄弟元素之後加入新的兄弟元素
 * insertAfter:新元素加入存在的兄弟元素後面
 * insertBefore:新元素加入存在的兄弟元素前面
 */
$("#b2").click(function(){
var LiNode=$("<li id='sz' value='shenzhen'><font color='aquamarine'>深圳</font></li>");  
    LiNode.insertAfter($("#gz"));
});

$("#b3").click(function(){
 var LiNode=document.createElement("li");
     LiNode.setAttribute("id","sz");
     LiNode.setAttribute("value","shenzhen");
     LiNode.innerHTML="深圳";
     document.getElementById("gz").appendChild(LiNode);
});

$("#b4").click(function(){
    var LiNode=$("<li id='sz' value='shenzhen'><font color='#FF0000'>深圳</font></li>");  
    $("#sh").before(LiNode);
});

效果圖:

Node節點類處理:

//清除所有的span元素節點
$("#b5").click(function(){
	$("span").empty(); //清空元素節點內容
	setTimeout(function(){
		//$("span").remove();  //刪除元素節點 
		$("<button>span替換節點</button>").replaceAll($("span"));
	},5000);
});

/**
 * clone:預設淺克隆,只會簡單克隆元素的屬性
 * clone(true):深克隆,元素的屬性和方法都會進行復制,屬於完整獨立空間
 */
$("#b6").click(function(){
	$("#b6").after($("#b5").clone(true));
});

效果圖:

注意:這裡設定定時器的操作主要是為了更好顯示清空(並非刪除節點)、替換節點的效果。

Jquery Dom 基礎入門

dom.css:

.one{
width: 140px;
height: 140px;
margin: 20px;
background: red;
border: #000 1px solid;
float:left;
font-size: 17px;
font-family:Roman;
}

.two{
width: 80px;
height: 80px;
margin: 20px;
background: yellow;
border: #000 1px solid;
float:left;
font-size: 17px;
font-family:Roman;
}

引入層疊樣式表dom.css:

    <link rel="stylesheet" href="js/dom.css" type="text/css"/>

介面

<input type="button" value="first獲取元素樣式"  id="b1"/><br>
<input type="button" value="second追加元素樣式"  id="b2"/><br>
<input type="button" value="first移除樣式:(刪除id為first的.one 樣式) "  id="b3"/><br>
<input type="button" value="first樣式切換"  id="b4"/><br>
<input type="button"  value="second判斷元素樣式" id="b5"/><br>
	   
<div id="first" class="one">id="first" class="one"
<div class="two">first-first</div>
</div>
<div id="second">id="second"</div>
<br>

<a href="www.sohu.com">sohu</a>

js操作邏輯

/*
*attr(name):獲取元素屬性為name的值
*attr(key,value);給元素增加屬性key,屬性值為value
*/
$("#b1").click(function(){
var $obj=$("#first").attr("class");   
   	alert("class屬性值:"+$obj);
});
   
$("#b2").click(function(){
//$("#second").attr("class","two");   
//$("#first").attr("class","two");   //若原元素中含有相同屬性,則會被覆蓋
//方法2
   $("#second").addClass("two"); 
});
   
$("#b3").click(function(){
  //$("#first").removeClass();     //等價於$("#first").removeClass("one"); 
      $("#first").removeAttr("class");
});

$("#b4").click(function(){
   $("#first").toggleClass("two");  //新舊樣式切換
});

$("#b5").click(function(){
     alert("second應用.two樣式:"+$("#second").hasClass("two"));   //進行新增屬性操作後true:dom樹在記憶體執行,不會改變原始碼
});

//$href = $('a').attr('href');

效果:

這裡寫圖片描述

Dom 節點動態建立

Jquery表單元素的動態增長的主要原理是通過構建新的Dom節點新增到原先的Dom樹,從而實現相應的效果。

Dom節點動態建立:

<form action="" id="todoForm" >
<label>請在下列輸入框中輸入內容:</label><br>
<input type="text" id="todoInput">
<input type="submit" value="提交">
</form><br>
<p id="todoCount"></p>
<ol id="todoList"></ol>

js操作邏輯

$(function(){

    function count(){
        var length=$("#todoList").children().length;
        $("#todoCount").html(length>0 ? "現有"+length+"項todoList!" : "");
    }

    $("#todoForm").submit(function(e){
        e.preventDefault();  //阻止頁面自動提交表單
        var input=$("#todoInput").val();
        $("#todoList").append("<li>"+input+"&nbsp;&nbsp;<a class='toDelete' href='###'>delete</a></li>");
        $("#todoInput").val('')
        count();
    });

    //物件上繫結click事件
    $("#todoList").on('click','.toDelete',function(){
        $(this).parent().remove();//常用的刪除目標節點的方法
        count();
    });
});

效果圖:

相關推薦

Jquery- DOM 節點操作

Jquery DOM 比較 <html> <head> &

Dom節點操作常用方法

1.訪問/獲取節點 document.getElementById(id);           //返回對擁有指定id的第一個物件進行訪問 document.getElementsByName(name);      //返回帶有指定名稱的節點集合   注意拼寫:Elements docum

JavaScript 節點操作 以及DOMDocument屬性和方法

表示 位置 clas 句柄 doc elements nta XML sele 最近發現DOMDocument對象很重要,還有XMLHTTP也很重要 註意大小寫一定不能弄錯. 屬性: 1Attributes 存儲節點的屬性列表(只讀) 2childNodes 存儲節點的子

jQuery教程-DOM節點操作及位置和大小 - 04

1. jQuery建立DOM標籤 1.1 DOM動態建立標籤的方法 DOM時代我們通過document的createElement方法動態建立標籤。建立標籤後,動態的給他新增屬性。例如程式碼: // 動態建立標籤 var domDiv = document.createElment('d

jQuery教程-DOM節點操作及位置和大小

1. jQuery建立DOM標籤 1.1 DOM動態建立標籤的方法 DOM時代我們通過document的createElement方法動態建立標籤。建立標籤後,動態的給他新增屬性。例如程式碼: // 動態建立標籤 var domDiv = document.create

jQueryDOM節點操作及位置和大小

1. jQuery建立DOM標籤 1.1 DOM動態建立標籤的方法 DOM時代我們通過document的createElement方法動態建立標籤。建立標籤後,動態的給他新增屬性。例如程式碼: // 動態建立標籤 var domDiv = document.createElment(

jquery刪除節點 新增節點 找兄弟節點

 一些簡單的內容, 加深印象 記錄下來: $().empty(); //該方法會刪除當前節點下的所有子節點,請注意當前節點不會 被刪除 $().remove(); //該方法會刪除當前節點下的所有子節點,請注意 當前節點會 被刪除 $().append('<

javascriptDOM操作方法(1)——節點屬性

demo1 tex rip tar nerd 屬於 fin ntb art 一、節點屬性Node.nodeName //返回節點名稱,只讀 Node.nodeType //返回節點類型的常數值,只讀 Node.nodeValue //返回Text或Comment

JavaScriptDOM—對節點操作

1、獲得節點 (1)獲得頁面中指定id的節點物件 document.getElementById("id的字串"); (2)獲得頁面中所有標籤名符合要求的標籤 document.getElements

jQueryjQueryDOM操作

注意:jQuery是一個集合,所有很多時候返回值也是一個集合 1.DOM節點的建立 $("html程式碼") 例$("<div></div>") 2.DOM節點的插入 內部隊尾插入: $(olds).append(new); $(new)

JQueryJQuery學習筆記:JQuery操作HTML,即JQuery DOM操作

1,jQuery DOM操作,設定或獲得內容:   設定,在()內填入內容即可,有回撥函式; text() - 設定或返回所選元素的文字內容 html() - 設定或返回所選元素的內容(包括 HTML 標記) val() - 設定或返回表單欄位的值 2,jQuery D

jQuery DOM節點操作

使用 strong cti html ndt pty index all taf 一、創建節點 var box = $(‘<div id =box>節點</div>‘); //創建一個節點 $(‘body‘).appended(box);     

JQuery---選擇器、DOM節點操作練習

span gif .text ide none tle pre splay body 一、練習一 1、需求效果分析: 2、代碼示例: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/

jQuery DOM節點操作方法大全

dom jquery 元素操作 append(content | fn):向每個匹配的元素內部追加內容。參考:http://jquery.cuishifeng.cn/append.html例如:向所有段落中追加一些HTML標記。<p>I would like to say: </

jQuery對於複選框操作的attr與prop

這個是在jQuery1.6版本之後出現的鬼東西。受影響的主要有下拉列表select與複選框checkbox。眾所周知,在jQuery中可以用attr()取出節點的屬性,然而對於checkbox卻不是這樣了,比如我要取出其是否被選中的屬性checked,attr("check

JQUERY獲取元素(父節點,子節點,兄弟節點)

jQuery.parent(expr)           //找父元素jQuery.parents(expr)          //找到所有祖先元素,不限於父元素jQuery.children(expr)        //查詢所有子元素,只會找到直接的孩子節點,不會返回

無腦操作:EasyUI Tree實現左鍵只選擇葉子節點、右鍵浮動選單實現增刪改

1 // 記錄新增還是修改 2 var flag; 3 // 臨時儲存選中節點資料 4 var tempNode; 5 6 // 頁面載入 7 $(function () { 8 // 選單樹繫結資料 9 $('#deptTree').

jQuery對網頁節點的增刪改查

本文與《【JavaScript】網頁節點的增刪改查》(點選開啟連結)為姊妹篇,其實JavaScript對DOM的操作已經總結了很久的,而對於jQuery對網頁節點的操作,雖然一直在用,但一直沒有好好總結一下,實在是不應該。 下面舉同樣的例子來說明這個問題: 如上圖,提供3

JqueryjQuery獲取URL參數的兩種方法

ont ras mil scrip line 兩種方法 lower quest request jQuery獲取URL參數的關鍵是獲取到URL,然後對URL進行過濾處理,取出參數。 location.href是取得URL。location.search是取得URL“?

jQuery動畫小練習

current href slow alt cart () chan move == 1.jQuery部分代碼如下 <script type="text/javascript"> $(function(){ var page = 1; var