第三章 1、 DOM操作(節點) 1) 查找節點可以查找元素節點和屬性節點 2) 創建節點: (1) 創建元素節點 var addLi = $(“<li></li>”);或者var addLi = $(“</li>”)不可以是var addLi = $(“<li>”); $(“ul”).append ...
第三章
1、 DOM操作(節點)
1) 查找節點可以查找元素節點和屬性節點
2) 創建節點:
(1) 創建元素節點
var addLi = $(“<li></li>”);或者var addLi = $(“</li>”)不可以是var addLi = $(“<li>”);
$(“ul”).append(addLi);
(2) 創建文本節點:var addLi = $(“<li>文本節點</li>”);
(3) 創建屬性節點:var addLi = $(“<li class=””>屬性節點</li>”);
3) 插入節點:
var add = $(“<b>插入節點</b>”);
(1) $(“p”).append(add)和add.appendTo(“p”);添加到內部
(2) $(“p”).prepend(add)和add. prependTo(“p”); 添加到內部
(3) $(“p”).after(add)和add.insertAfter (“p”);添加到外部
(4) $(“p”).before(add)和add. insertBefore (“p”); 添加到外部
4) 刪除節點
(1) remove()//可以帶屬性
(2) detach()//與remove()不同的是:所綁定的事件和附加的數據等都會保留下來
(3) empty()//清空節點
5) 複製節點
(1) clone()
(2) clone(true)是讓複製元素的同時也複製元素所綁定的事件,同時也具備複製的功能
6) 替換節點
(1) replaceWith();比如:$(“p”). replaceWith (add)
(2) replaceAll;比如:add. replaceAll (“p”)
7) 包裹節點
(1) wrap();比如:$(“p”). wrap (“<b></b>”)把p標簽用b標簽包裹起來
(2) wrapAll()比如$(“p”). wrapAll (“<b></b>”)把所有匹配的每個p標簽用b標簽包裹起來
(3) wrapInner()比如$(“p”). wrapAll (“<b></b>”)把所有匹配的所有p標簽用b標簽包裹起來
2、 DOM操作(屬性)
1) 屬性
(1) 獲取屬性:$(“p”).attr(“title”)
(2) 設置屬性:$(“p”).attr({“title”:”myTitle”,”class”:”pItem”})
(3) 既能獲取屬性也能設置屬性的還有:html()、text()、height()、width()、val()、css()
(4) 刪除屬性:$(“p”).removeAttr(“title”)
2) 樣式
(1) 獲取樣式:$(“p”).attr(“class”)
(2) 設置樣式:$(“p”).attr(“class”,”main”)
(3) 追加樣式:$(“p”).addClass(“other”)
(4) 移除樣式:
(1st) 刪除一個:$(“p”). removeClass(“other”)
(2nd) 刪除多個:$(“p”). removeClass(“other”) . removeClass(“main”)或者
$(“p”). removeClass(“other main”)
(5) 切換樣式
(1st) toggle(function(){},function(){})
(2nd) $(“p”). toggleClass(“other”)//如果類名存在則刪除,不存在則添加
(6) $(“p”). hasClass(“other”)判斷是否含有某個樣式
3) html():
(1) 獲取html()
$(“p”). html() 獲取p裡面的html內容
(2) 設置html()
$(“p”). html(“<b>設置html()</b>”)設置p裡面的html內容
4) text()
(1) 獲取text ()
$(“p”). text () 獲取p裡面的文本內容
(2) 設置text ()
$(“p”). text (“設置html()”)設置p裡面的文本內容
5) val()【相當於js的value屬性】
(1) 能獲取屬性也能設置屬性
(2) 能使select()、checkbox()、radio()相應的選項被選中
3、 DOM操作(遍歷節點)
1) childer() 子元素集合
2) next() 匹配元素後面緊鄰的同輩元素
3) prev() 匹配元素前面緊鄰的同輩元素
4) silbings() 匹配元素前後緊鄰的同輩元素
5) closest(“xx”) 取得最近的匹配元素
6) parent()、parents()
4、 DOM操作(CSS)
1) 單個樣式:$("p”).css(“color”,”red”);
2) 多個樣式:$("p”).css({“color”:”red”,” opacity”:”0.5”});
3) offset();獲取元素在當前視窗的相對位移
4) position();
5) scrollTop()、scrollLeft()
第四章
1、 事件綁定:bind(“click”, fn);有三個參數,但是第二個參數一般作為event.data屬性傳遞給對象的額外數據對象,一般沒用它。
2、 合成事件:hover()【替代的是mouseenter、mouseout】、toggle()
3、 事件冒泡
1) 事件對象【單擊p標簽時,事件對象就會被創建,事件對象只有事件處理函數能訪問到,事件處理完畢,事件對象就會被銷毀】:$("p”).bind(“click”,function(event){})
2) 防止事件冒泡:加上event.stopPropagation()
3) 阻止預設行為:event.preventDefault();【比如有時候提交按鈕時,檢查到表單不合法,阻止表單提交】
4) 阻止事件冒泡和預設行為可以直接簡寫成:return false;
5) jQuery不支持事件捕獲
4、 事件對象的屬性:
1) event.type 獲取事件類型
2) event. preventDefault()
3) event. stopPropagation()
4) event.target
5) event.relatedTarget
6) event.pageX和event.pageY
7) event.which滑鼠單擊時,獲取滑鼠的左(1)、中(2)、右(3)鍵
8) event.metaKey
5、 移除事件
1) unbind(【事件類型】,【要移除的函數】)
(1) $("p”).unbind(“click”);
(2) $("p”).unbind(“click”,function(){});
(3) 如果前面的$("p”).bind(“click”,mgFn=function(){});
這樣的話:$("p”).unbind(“click”, mgFn);
2) one(【事件類型】,【數據,可不傳】,【函數】)//處理函數只執行一次
6、 模擬操作
1) 當用戶一進入頁面後就觸發事件:$("p”).trigger(“click”)或者$("p”). click()
2) 觸發自定義事件:$("p”).trigger(“myclick”)
3) 傳遞數據:trigger (【事件類型】,【要傳遞的附加數據】)
eg: $("p”).trigger(“myclick”,function(event,msg1,msg2){})
4) 執行預設操作
(1) trigger()觸發事件後,會執行瀏覽器預設操作$("input”).trigger(“focus”)
(2) 不執行瀏覽器預設操作$("input”).triggerHandler(“focus”)
7、 其他方法:
1) 綁定多個事件bind(“mouseover mouseout ”, fn);
2) 添加事件命名空間(可以多個事件用同一個命名空間)
bind(“mouseover.plugin ”, fn);
3) 元素綁定相同事件,以不同命名空間進行調用
bind(“mouseover ”, fn);
bind(“mouseover.plugin ”, fn);
8、 動畫
1) show()和hide()-----------------------toggle()
2) fadeIn()和fadeOut()-----------------fadeToggle()
3) slideUp()和slideDown()-----------------slideToggle()
4) animate(【樣式屬性與值】,【速度參數可選】,【動畫完成時的函數,可選】)
(1) $("p”). animate({left:”+=50px”,opacity:”0.5”},3000)
(2)
$("p”). animate({left:”+=50px”,opacity:”0.5”},3000,function(){
$(this).css(“border”:”1px solid blue”);//最後一步執行
})
5) 停止動畫:stop(【是否清空為執行完的動畫隊列,(true/false),可選】,【是否直接將正在執行的動畫跳轉到末狀態,(true/false),可選】)
PS:如果直接使用stop()就會立即停止正在執行的動畫
6) 判斷是否處於動畫狀態:is(“: ”)
eg:$("p”).is(“:animate”)
7) 延遲動畫:delay(1000)
8) 其他動畫方法:
(1) toggle(speed,[callback])
(2) fadeToggle(speed,[easing] ,[callback])
(3) fadeTo(speed,opacity ,[callback])
(4) slideToggle(speed,[easing] ,[callback])
第五章
1、 IE6不支持除超鏈接元素之外的:hover偽類選擇符,可以使用css中設置樣式,然後再腳本中使用addClass
2、 覆選框
1) 反選操作:
$(‘[name=item]:checkbox’).each(function(){ this.checked = !this.checked; })
2) 全選/全不選用同一個覆選框:
$(‘[name=item]:checkbox’).attr(“checked”,this.checked);
3、 表格的索引$(“tr:【odd/even】”)從0開始,所以第1行是偶數,
不過當$(“tbody>tr:【odd/even】”)時1是奇數
4、 end()可以讓一個事件從回$(this)對象
5、 表格:
1) 帶有覆選框:
$("tbody>tr").click(function(){ //判斷當前是否選中 var hasSelected = $(this).hasClass("selected"); //如果選中,則移出selected類,反之 $(this)[hasSelected?"removeClass":"addClass"]("selected"); //查找內部的checkbox,設置對應的屬性 $(this).find(":checkbox").attr("checked",!hasSelected); })
2) 表格的展開和關閉
通過控制tr的class和id
(1) 比如父行的class=”parent”和id=”row_01/02……”
子行的class=”child_ row_01/02……”
(2) jQuery代碼為:
$(“tr.parent”).click(function(){ $(this).toggleClass(“selected”).sibling(“.child_”+this.id).toggle(); })
(3) 當有父行是預設展開的話,當用戶進入頁面時,預設需要收起來,只要在上面那個代碼後面再加上.click()
3) 表格內容篩選:搜索框裡面輸入變數值
$(“#filterName”).keyup(function(){ $(“table tbody tr”).hide().filter(“:contains(‘”+( $(this).val() )+”’)”).show(); }). keyup ();//DOM載入完了之後,綁定事件完成時候觸發