一、前言 在使用jQuery選擇器獲取到jQuery包裝集後,我們就要對這些包裝集進行各種操作 二、創建新的元素 1.使用HTMLDOM創建元素 (1)什麼是DOM 當網頁被載入時,瀏覽器會創建頁面的文檔對象模型(Document Object Model) (2)使用HTML DOM創建元素 1 ...
一、前言
在使用jQuery選擇器獲取到jQuery包裝集後,我們就要對這些包裝集進行各種操作
二、創建新的元素
1.使用HTMLDOM創建元素
(1)什麼是DOM
當網頁被載入時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)
(2)使用HTML DOM創建元素
1 <div id="testDiv"></div> 2 <script> 3 var select = document.createElement("select"); 4 select.options[0] = new Option("載入項1", "value1"); 5 select.options[1] = new Option("載入項2", "value2"); 6 select.size = "2"; 7 var testDiv = document.getElementById("testDiv"); 8 var object = testDiv.appendChild(select); 9 </script>
2.使用jQuery函數創建元素
1 <div id="testDiv"></div> 2 <script> 3 $("<select><option value ='value1'>載入項1</option><option value='value2'>載入項2</option></select>").appendTo($("#testDiv")) 4 </script> 5
(1)創建時註意
一定不要在頁面載入時就改變頁面的DOM結構,正確的做法是在頁面載入完畢後添加或刪除元素
方式一:所有資源完整載入後,再添加新的元素
缺點:如果某個圖片或資源載入很長時間,就會顯示一個不完整的頁面
<script> window.onload = function () { $("<select><option value ='value1'>載入項1</option><option value='value2'>載入項2</option></select>").appendTo($("#testDiv")); } </script>
方式二:DOM完整載入後,再添加新的元素
<script> $(document).ready(function () { $("<select><option value ='value1'>載入項1</option><option value='value2'>載入項2</option></select>").appendTo($("#testDiv")); }); </script>
或者使用簡潔語法
<script> $(function () { $("<select><option value ='value1'>載入項1</option><option value='value2'>載入項2</option></select>").appendTo($("#testDiv")); }); </script>
三、管理jQuery包裝集的一些函數
1.過濾 Filtering
$("p").eq(1) | 獲取匹配的第二個元素 |
$("p").filter(".selected") | 保留class為selected的元素 |
$("div").filter(function (index) {return $("ol", this).size() == 0;}); | 保留子元素中不含有ol的元素 |
$("input[type='checkbox']").parent().is("form") | 由於input元素的父元素是一個表單元素,所以返回true |
$("p").append($("input").map(function () { return $(this).val(); }).get().join(", ")); | 把form中的每個input元素的值建立一個列表 |
$("p").not( $("#selected")[0] ) | 從p元素中刪除帶有 select 的ID的元素 |
$("p").slice(0, 1) | 選擇第一個p元素 |
2.查找Finding
$("p").add("<span>Again</span>") | 動態生成一個元素並添加至匹配的元素中 |
$("div").children() | 查找DIV中的每個子元素 |
$(document).bind("click", function (e) { $(e.target).closest("li").toggleClass("hilight"); }) | 為事件源最近的父類li對象更換樣式 |
$("p").contents().not("[nodeType=1]").wrap("<b/>") | 查找所有文本節點並加粗 |
$("p").find("span") | 與$("p span")相同 |
$("p").next() | 找到每個段落的後面緊鄰的同輩元素 |
$("div:first").nextAll().addClass("after") | 給第一個div之後的所有元素加個class |
offsetParent( ) | |
$("p").parent() | 查找每個段落的父元素 |
$("span").parents() | 找到每個span元素的所有祖先元素 |
$("p").prev() | 找到每個段落緊鄰的前一個同輩元素 |
$("div:last").prevAll().addClass("before") | 給最後一個之前的所有div加上一個class |
$("div").siblings() | 找到每個div的所有同輩元素 |
3.串聯 Chaining
$("div").find("p").andSelf().addClass("border") | 選取所有div以及內部的p,並加上class |
$("p").find("span").end() | 選取所有的p元素,查找並選取span子元素,然後再回過來選取p元素 |
四、參考文章
http://www.cnblogs.com/zhangziqiu/archive/2009/05/04/jQuery-Learn-3.html