如何一氣呵成地,on the fly地操作DOM元素呢?
例如順序執行【創建】-> 【修改】-> 【添加】三個動作。
由於jQuery支持鏈式操作,其實就是設計模式的builder模式,所以我們可以把三個操作串在一起來執行。
首先創建一個p元素,內容包含一個a元素。
. 代碼如下:
$('<p><a>jQuery</a></p>')
然後為a元素添加一個href屬性
. 代碼如下:
$('<p><a>jQuery</a></p>').find('a').attr('href', 'http://www.jquery.com')
最後把新添加的p元素添加到body中
. 代碼如下:
$('<p><a>jQuery</a></p>').find('a').attr('href', 'http://www.jquery.com').end().appendTo('body')
注意,這個地方需要執行end()操作,否則添加到body中的元素不是p元素變成了p元素中的a元素。
其實,end()操作不能等價與撤銷,它返回的是previous selection,但是這個selection已經被end之前的操作修改過。
. 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript" src="jquery-1.11.1.js"></script>
<script type="text/javascript">
$('<p><a>jQuery</a></p>').find('a').attr('href', 'http://www.jqeury.com').appendTo('body');
</script>
</body>
</html>
頁面代碼