全部課程
發(fā)布時(shí)間: 2018-12-21 14:17:32
?除了對(duì)元素內(nèi)容進(jìn)行設(shè)置和獲取,通過 jQuery 也可以對(duì)元素本身的屬性進(jìn)行操作,包括獲取屬性的屬性值、設(shè)置屬性的屬性值,并且可以刪除掉屬性。
? attr()和 removeAttr()?
$('div').attr('title'); //獲取屬性的屬性值
$('div').attr('title', '我是域名'); //設(shè)置屬性及屬性值, 'title'屬性是key,值是value
$('div').attr({
'title': '我是域名',
‘class’:’aa’; //class不建議使用attr方法設(shè)制
});
$('div').attr('title', function () { //通過匿名函數(shù)返回屬性值,跟以上效果一樣,沒什么意義
return '我是域名'; //要用到函數(shù)的話,就用來計(jì)算
});
$('div').attr('title', function (index, value) { //可以接受兩個(gè)參數(shù)
return value + (index+1) + ',我是域名'; //index索引當(dāng)前元素的坐標(biāo)0,value是title當(dāng)前的值
}); //如果當(dāng)前的title在div中沒有設(shè)制返回的是NaN
注意:attr()方法里的 function() {},可以不傳參數(shù)??梢灾粋饕粋€(gè)參數(shù) index,表示當(dāng)前元素的索引(從 0 開始)。也可以傳遞兩個(gè)參數(shù) index、value,第二個(gè)參數(shù)表示屬性原本的值。
注意:jQuery 中很多方法都可以使用 function() {}來返回出字符串,比如 html()、text()、val()和上一章剛學(xué)過的 is()、filter()方法。而如果又涉及到多個(gè)元素集合的話,還可以傳遞 index 參數(shù)來獲取索引值,并且可以使用第二個(gè)參數(shù) value(并不是所有方法都適合,有興趣可以自己逐個(gè)嘗試)。
$('div').html(function (index) { //通過匿名函數(shù)賦值,并傳遞 index
return '我是' + (index+1) + '號(hào) div';
});
$('div').html(function (index, value) { // index不調(diào)用也得寫上,value表示追加內(nèi)容
return value+‘ div’ ;
});
注意:可以使用 attr()來創(chuàng)建 id 屬性,但強(qiáng)烈不建議這么做。這樣會(huì)導(dǎo)致整個(gè)頁面結(jié)構(gòu)的混亂。當(dāng)然也可以創(chuàng)建 class 屬性,但后面會(huì)有一個(gè)語義更好的方法來代替 attr() 方法,所以也不建議使用。
刪除指定的屬性,這個(gè)方法就不可以使用匿名函數(shù),傳遞 index 和 value 均無效。
$('div').removeAttr('title'); //刪除指定的屬性