jQuery 基本操作
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
jQuery 基本操作
?
jQuery 是一個輕量級的javascript類庫, 只有14k(未壓縮的版本有77k)
?
jQuery 有什么好處呢?
我想好處有以下幾點(diǎn):
1. 簡化了html對象的操作, 起碼寫的字少了, 而且原來需要自己寫循環(huán)做的, 現(xiàn)在一句話就搞定
2. 提高了代碼的瀏覽器兼容性. 現(xiàn)在的4種主流瀏覽器之間的js腳本或多或少都會存在兼容性問題, 用 jQuery , 會讓你不用關(guān)心兼容性.比如Ajax請求, ie和firefox的對象完全不一樣還有box模型的問題, 比如一個div外面加了一個邊框, 然后為這個div設(shè)定一個寬度, ie和firefox對這個div的實(shí)際寬度理解的就不一樣. ie會認(rèn)為div的實(shí)際寬度是div的寬度+邊框?qū)挾? 而firefox認(rèn)為div的實(shí)際寬度就是你設(shè)定的寬度, 不過div的有效寬度就是div的寬度-邊框?qū)挾攘? 這個問題會影響一個元素的實(shí)際位置. 所以一定要用 jquery 的offset方法來取元素的位置, 用width來取寬度
所有的 jQuery 選擇器返回值都是 jQuery 對象, 而不是html元素. 所以一些普通的用法, 比如InnerHTML都是無效的.
?
1. 選取元素
$(”#myid”)效果等于document.getElementById(”myid”), 但是寫的字符要少好多啊.
?
如果需要將 jQuery 對象轉(zhuǎn)換成html元素, 則只需要取其第0個元素即可. 例如$(”#myid”)返回的是 jQuery 對象, 而$(”#myid”)[0]返回的就是html元素
?
如果選擇所有的img元素, 那么這么寫: $(”img”)
?
如果選擇帶有class=”TextBox”的div元素(
), 那么這么寫: $(”div.TextBox”)
?
選擇帶有myattr屬性的元素$(”div[myattr]”)
選擇帶有myattr屬性, 并且屬性值等于myclass的元素$(”div[myattr=’myclass’]”)
屬性不等于[myattr!=’myclass’]
屬性以my開頭[myattr^=’my’]
屬性以class結(jié)尾[myattr$=’class’]
屬性包含cla這三個字符[myattr*=’cla’]
?
如果一個選擇會返回多個元素,并且希望每返回一個元素, 就把某些屬性應(yīng)用到該元素上, 可以這么寫
$(”div”).each(function()
{
$(this).css(”background-color”, “#F00″);
alert($(this).html());
$(this).width(”200px”);
});
2.事件
給頁面加onload事件處理方法
$(function()
{
alert(”頁面結(jié)構(gòu)加載完畢, 但是可能某些圖片尚未加載(一般情況下, 此事件就夠用了)”);
});
可以給頁面綁定多個onload事件處理方法
$(function()
{
alert(”我首先被執(zhí)行”);
});
$(function()
{
alert(”我第二被執(zhí)行”);
});
綁定特殊事件
$(”#myid”).keydown(function()
{
alert(”觸發(fā)了keydown事件”);
});
除了這些常用的, 不常用的事件需要通過bind方法綁定
?
3. 元素屬性/方法
得到一個元素的高度, $(”#myid”).height()
得到一個元素的位置, $(”#myid”).offset() 返回的是一個offset對象, 如果取元素位置的top, 則$(”#myid”).offset().top,?取left則$(”#myid”).offset().left
得到一個元素的innerHTML,$(”#myid”).html()
得到一個元素的innerText,$(”#myid”).text()
得到一個文本框的值, $(”#myid”).val()
得到一個元素的屬性, $(”#myid”).attr(”myattribute”)
以上這些方法有個基本特征, 就是不帶參數(shù)表示取值, 帶有參數(shù)表示設(shè)定值(除了offset), 例如
$(”#myid”).height(”20″);
$(”#myid”).html(”< a href=”>asdasd a>”)
$(”#myid”).val(”asdasd”)
需要注意, offset是只讀的.
給一個元素 設(shè)置屬性 $(”#myid”).attr(”width”, “20%”)
讀取一個屬性 $(”#myid”).attr(”width”)
一次指定多個屬性 $(”#myid”).attr({disabled: “disabled”, width:”20%”, height: “30″})
刪除屬性$(”#myid”).removeAttr(”disabled”)
應(yīng)用樣式$(”#myid”).addClass(”myclass”)
刪除樣式$(”#myid”).removeClass(”myclass”)
加一個樣式$(”#myid”).css(”height”, “20px”)
加一組樣式$(”#myid”).css({height:”20px”, width:”100px”})
需要注意的是: 如果是加一個樣式, 這個樣式的名字是css中的名字, 比如說style=”background-color:#FF0000″, 對應(yīng)的 jQuery 寫法是$(”#myid”).css(”background-color”, “#FF0000″)
但是加一組樣式的時候, 樣式的名字就是javascript中的css名字了, 比如:myid.style.backgroundColor = “#FF0000″, 對應(yīng)的 jQuery 寫法是$(”#myid”).css({backgroundColor:”#FF0000″})
?
4. 根據(jù)關(guān)系查找元素
找和自己同級的下一個元素$(”#myid”).next()
找和自己同級的所有位于自己之下的元素$(”#myid”).nextAll()
找和自己同級的上一個元素$(”#myid”).prev()
找和自己同級的所有位于自己之上的所有元素$(”#myid”).prl()
找自己的第一代子元素$(”#myid”).children()
找自己的第一個父元素$(”#myid”).parent()
找自己的所有父元素$(”#myid”).parents()
例子:
$(”div.l4″).parents().each(
function() {
alert($(this).html());
});
會把class=l4的div的所有父元素都得到, 并且alert出他們的html
例子:
$(”div.l4″).parents(”div.l2″).each(function() {alert($(this).html()); });
會得到class=l4的父元素, 該父元素必須是div, 而且其class=l2
這里說的所有方法, 都可以帶表達(dá)式, 表達(dá)式的寫法參考第一部分
?
5. 維護(hù)元素
在body中增加一個元素
$(”body”).append(” ’asd’? ”)
該語句會把這段html插入到body結(jié)束 標(biāo)簽 之前, 結(jié)果是’asd’
$(”body”).prepend(” ’asd’? ”)
該語句會把這段html插入到body開始 標(biāo)簽 之后, 結(jié)果是’asd’
?
6.AJAX
用get方法請求一個頁面
$.get(” http://www.google.com” , “q= jquery”, function(data, status){alert(data)})
表示請求http://www.google.com,參數(shù)是q, 參數(shù)的值是 jquery , 請求結(jié)束后(不管成功還是失敗)執(zhí)行后面的function,該function有兩個固定參數(shù), data和status, data是返回的數(shù)據(jù), status是本次請求的狀態(tài)
用post方法請求一個頁面
$.post(……..) 參數(shù)同get方法
?
7.其他方法
$.trim(str) 將str前后空格去掉
$.browser 返回當(dāng)前用戶瀏覽器的類型
$.browser.version返回當(dāng)前瀏覽器的版本
?
8. 插件
jQuery 支持插件, http:// jquery .com/plugins/ 上面有很多現(xiàn)成的插件, 也可以自己寫
自己寫插件,
?
轉(zhuǎn)載于:https://my.oschina.net/u/1163677/blog/156778
總結(jié)
以上是生活随笔為你收集整理的jQuery 基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 面向对象-main函数
- 下一篇: Shell数组的增删改查
