天天看點

jQuery操作DOM元素

作為一個後端程式員,也是要和前端頁面打交道的。最常見的場景莫過DOM元素操作和前端頁面使用AJAX向伺服器發送請求。

實作上述兩個功能當然可以使用原生js來完成,但在實際開發過程中很少這樣做,通常會使用一些别人封裝好的js庫來輔助我們的工作,jQuery就是這些輔助庫中的一員。

常用選擇器

選擇器 說明
element $('标簽名'),$('a')選取頁面上的所有a标簽,傳回類型是DOM元素數組
class $('.類名'),$('.cls')選取頁面上class屬性為cls的标簽,傳回類型是DOM元素數組
id $('#value'),選取頁面上id=value的标簽
$('[name]'),選取帶有name屬性的标簽,傳回類型是DOM元素數組
$('[name="tag"]'),選取name=tag的标簽,傳回類型是DOM元素數組
attribute $('[name!="tag"]'),選取name不等于tag的标簽,傳回類型是DOM元素數組
$('[href=".jpg"]'),選取所有href屬性值以 ".jpg" 結尾的标簽,傳回類型是DOM元素數組
:
:hidden $("label:hidden"),所有隐藏的label元素,傳回類型是DOM元素數組
:visible $("lable:visible"),所有可見的label元素,傳回類型是DOM元素數組
:first $("p:first"),選擇頁面上的第一個p元素
:last $("p:last"),選擇頁面上的最後一個p元素
:even $("tr:even"),選取頁面上索引為偶數的tr元素,傳回類型是DOM元素數組
:odd $("tr:odd"),選取頁面上索引為奇數的tr元素,傳回類型是DOM元素數組
:not() $("input:not(:empty)"),所有不為空的 input 元素
input      
:input         選取頁面上的所有input元素,傳回類型是DOM元素數組
:type         $(":text")等價于$('input[type=text]'),選取頁面中所有type="text"的input元素。input常用type值有text,radio,checkbox,text,submit,password等。

選擇器的綜合使用

jQuery操作DOM元素
jQuery操作DOM元素
//操作多種标簽
$('p,div,input').attr('name','multi');

// 一個标簽使用多個樣式類
<div class='main-title ng-binding ng-scope'></div>
$('.main-title.ng-binding.ng-scope');

//選取被選中的radiobutton
$(':radio[name=""]:checked');
或
$(':radio:checked');//選取頁面上所有被選中的radiobutton

//選取class屬性值是style的p标簽
$('p.style');

//選取div所有子元素中的p标簽
$('div p');
或
$('div>p').;

//擷取值是★的td标簽
$('td:contains("★")')

//選擇id='table'的标簽中的第一個tr标簽
$('#table tr:first');

//選取id='table'标簽中的索引為奇數且沒有使用類名為'last'的所有tr标簽
//且為選擇的元素添加even類
$('#table tr:odd:not(.last)').addClass('even');

//對id='table'标簽中的索引大于0小于3的所有tr标簽使用類名為'three'的樣式
$('#table tr:gt(0):lt(3)').addClass('three');

//表單
$("#form1 :enabled");//選取id為form1的表單内所有啟用的元素
$("#form1:enabled");//選取id為form1的已啟用的表單,注意這裡#form1和:enabled之間沒有空格,有空格表示選取子元素
$("#form1 :disabled");//選取id為form1的表單内所有禁用的元素      

View Code

常用方法

jQuery的方法隻有jQuery對象才可以調用,DOM對象不能調用。

DOM對象和jQuery對象的互相轉換

//DOM轉jQuery
var win=$(window);//将window轉換為jQuery對象
//jQuery對象win轉DOM對象
win.get[0];
//或
win[0];      
樣式屬性
attr() $('#key').attr('id'),擷取id屬性值;$('#key').attr('name','tag'),設定name屬性值為tag,$('#key').attr('id',''),将id屬性值設為預設值
removeAttr 删除屬性,删除的屬性不再占用記憶體資源,在源代碼中看不到
css() $('#key').css('color','red'),設定id=key的标簽文本顔色為紅色
addClass('className') 給元素添加樣式
removeClass('className') 移除樣式
toggleClass('className') 啟用或關閉樣式
内容操作
text() 針對非input使用,text()擷取元素中的文本,text('str')設定元素文本為str
html() 和text類似,不同之處是html()可以使用html樣式,

$('p').html('<b>p</b>')

,p标簽上顯示粗體字母p
val() 針對input使用,val()擷取元素中的value屬性值,value('str')設定元素value屬性值為str
load() 發送AJAX請求,重新擷取标簽要呈現的内容$('#lessonList').empty().load('/Lesson/UnionSearch/conditions?' + conditions);
元素操作
hide() 隐藏元素
show() 顯示元素

$('<p id="pTag"></p>'

)
建立p元素
append() 向元素末尾添加子元素
appendTo() 将元素添加到指定的元素末尾
children('selector') 擷取标簽的所有子元素(不包括子元素的子元素),selector表示選擇器,可省略
find('selector') 根據selector擷取元素的所有子元素(包括子元素的子元素),selector不可省略
each() 周遊元素數組,例:$('p').each(function(){$(this).text('p');});

結語

以上這些是我在開發過程常用到的一些選擇器和方法,在此做個總結以備後續查詢使用。

最後說一點,同一個jQuery方法,可能會因為jQuery版本的不同而産生不同的效果。

版權聲明

本文為作者原創,版權歸作者雪飛鴻所有。

轉載必須保留文章的完整性,且在頁面明顯位置處标明原文連結。

如有問題, 請發送郵件和作者聯系。

繼續閱讀