天天看點

jquery constructor

Created by Jerry Wang on Sep 02, 2014

<html>
<script>
function myprint() {
 console.log("hello world");
}
</script>
<script src="./jquery_1.7.1.js">
</script>
<script>
function register_event() {
 var acollections = $("a");
 console.log("number of a: " + acollections.length);
 acollections.click(function(){
 console.log("function registered via Jquery is called");
 }); 
}
</script>
<body onload = "register_event();">
<p>one</p> 
<div> 
<p>two</p> 
</div> 
<p>three</p> 
<a href="#" id="test" >jQuery</a>
</body> 
</html>      

case1: 為tag a注冊click 事件處理函數

點選tag a後輸出如下:

jquery constructor

若source code改為如下,則點選tag a時不會觸發console.log,因為在匿名函數執行時body page尚未完成render,$("a")傳回為空,是以click事件的注冊實際上沒有進行。

jquery constructor

注冊事件處理函數可加上參數source: ```JavaScript acollections.click(function(source){ console.log("function registered via Jquery is called on: " + source.currentTarget.id); } ``` 則click事件發生的element id也能列印出來:

jquery constructor

case2: 列印某tag inner html source code 在case1的html中加入如下code:

Hello world

!

在register_event函數末尾加入如下code: ```JavaScript console.log($("div>span").html()); ``` 輸出div tag内的子節點span的全部html

source code:

jquery constructor

另一種用法: find method前可加限制條件(從指定的dom node開始查找) console.log("searching span node in whole page: " + $(document).find("div>span").html()); 注:$('div>ul')和$('div ul')是有差別的: $('div>ul')是

的直接後代裡找

; 而$('div ul')是在

的所有後代裡找

。 ```JavaScript var noClass = $('body p:not(.c_three)'); // 傳回body node下所有類型為p的子節點,這些子節點不包含class c_three. ``` ```JavaScript var withTitle = $('a[title]'); // 傳回所有擁有title屬性的a tag. ``` ```JavaScript var child = $('a[title^="tit"]') // 傳回所有title屬性為tit開頭的a tag. ``` ```JavaScript var child = $('a[title$="e"]') // 傳回所有title屬性為e結尾的a tag. ``` ```JavaScript $('td:contains("Henry")').prev()——内容包含有"Henry"的的上一個節點 $('td:contains("Henry")').next()——内容包含有"Henry"的的下一個節點 $('td:contains("Henry")').siblings()——内容包含有"Henry"的的所有兄弟節點 ``` case3: 動态添加dom node $("

Hello").appendTo("body"); 

jquery constructor

jquery selector 預設傳回的結果集是array,如果想獲得dom element,需要使用get method: 

jquery constructor

繼續閱讀