jQuery 開發筆記
2020-06-08
jQuery 的常用操作筆記,其次每次的使用需求都很簡單,只是有時候稍微卡住就要花費時間搜尋與測試,索性將常用的行為作成筆記,方便檢索。
元素選取
常見的選取方式
$('a');
$('#id');
$('.className');
$('#id:first');
$('.parentClass > .childClass');
根據 input 的 name 選取
$('input[name="Name"]');
⚠️ 注意 name 的選取有 Case Sensitive
選取相同 Id 字串開頭的元素
$('[id^=Element]')
取出所有的 h2, h3 標籤
Pure JS
document.querySelectorAll('h2 , h3').forEach(x => console.log(x.tagName, x.textContent))
元素操作
取出元素值 (val, text, html, attr)
$('#id').val()
$('#id').text()
$('#id').html()
$('#id').attr('data-property')
元素賦值 (val, text, html, attr)
$('#id').val('Value')
$('#id').text('Text')
$('#id').html('<p>lorem ipsum</p>')
$('#id').attr('data-property', val)
操作元素的 CSS (addClass, removeClass, toggleClass, css)
$('#id').addClass('className')
$('#id').removeClass('className')
$('#id').toggleClass('className') //add if Not exists, remove If exists
$('#id').css('background-color') //get element specific css attribute value
$('#id').css('background-color', 'red') //get element specific css attribute value
在元素上綁定資訊 (data)
$('#id').data(key, value)
對 jQuery Select Collection 逐一元素操作 (each)
$( "li" ).each(function( index ) {
console.log( index + ": " + $( this ).text() );
});
將 jQuery 物件轉為 DOM 物件
$('selector').get() //to js array
$('selector').get(1) //get first element of js array
事件行為
點擊 (Click)
$('#id').click() //對 #id 元素進行點擊
$('#id').click(function(){
...
}); //對 #id 元素註冊被點擊的 callback function
全域聆聽鍵盤輸入 (KeyPress)
$(function() {
$(window).keypress(function(e) {
console.log(e.which);
});
});
移除元素 (Hide, Remove)
$('#id').hide() //still can be see by html source, add style display none
$('#id').remove()
Ajax
load file html content
$(".btn").click(function(){
$("#p1").load("htmlContent.txt");
$("#p2").load("htmlContent.html");
});
ajax 並指定 callBack 行為
$('#id').load(url, function(res, status, xhr){
...
})
其他
IE11 出現不支援 AddEventListner 時的處理方法
Html 加入以下 meta:
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
取得物件的所有 Key
Object.keys(obj)
控制 DataTables 的搜尋行為
$('.dataTableFilter').click(function () {
$('.dataTableEnable').DataTable().search($(this).html()); //modify search text
$('.dataTableEnable').DataTable().search($(this).html()).draw(); //implement search
})