作用有:1、作為jQuery包裝器,利用選擇器來選擇DOM元素,語法「$("選擇器")」;2、函數前綴,作為通用實用工具函數的命名空間的前綴,例「$.trim(sString);」;3、解決window.onload函數的衝突;4、創建DOM元素,例「$("
這是個好故事>") 」;5、自訂方法以擴充jQuery;6、使用jQuery和其他函式庫;7、設定文件就緒處理程序。
本教學操作環境:windows7系統、jquery3.6版本、Dell G3電腦。
1、作為jQuery包裝器,利用選擇器來選擇DOM元素
在CSS中選擇器的作用是選擇頁面中某一類(類別選擇器)元素或某一個元素(ID選擇器)
#,而jQuery中的"$"作為選擇器,同樣是選擇某一類或某一類元素,只不過jQuery提供了
更多更全面的選擇方式。並且為使用者處理了瀏覽器的相容問題
h2 a{ /添加CSS属性/ }
而在jquery中則可以透過以下程式碼來選取
$("h2 a")
$(selector)
或
jQuery(selector)
其中selector符合CSS3標準
可以看到jQuery的表示方法簡潔很多
$("#showp“)
需要用for循環遍歷整個DOM
$(".SomeClass")
標記, 幾乎所有的標記都可以使用" : odd" 或": even" 來實現奇偶的選擇
$("p : odd")
$("td:nth-child(1)")
$("li > a")
# ("a[href=pdf]")
注意:
在jQuery中美元符號"$"其實就等同於"jQuery",從jQuery的原始碼中可以看出
為了編寫程式碼的方便,通常都會採用"$"來取代"jQuery"
2、函數前綴
在javascript中,開發者經常要便攜一些小函數來處理各種操作細節,例如在使用者提交表單時,
需要將文字方塊中的最前端和最末端的空格清理掉,javascript沒有提供類似trim()的功能,而引入
jQuery後,便可以直接使用trim()函數,例如
$.trim(sString);
以上程式碼相當於:
jQuery.trim(sString);
即trim()函數時jQuery物件的一個方法。
3、解決window.onload函數的衝突
#由於頁面的HMTL框架需要在頁面完全載入之後才能使用,因此在DOM程式設計時window.onload函數
頻繁被使用。倘若頁面中有多處都需要使用該函數,或者其他.js檔案中也包含window.onload函數,
衝突問題十分棘手
jQuery中的ready()方法很好的解決了上述問題,它能夠自動將其中的函數在頁面載入完成後運行,
並且在同一個頁面中可以使用多個ready()方法,而且不互相衝突。例如
$(document).ready(function(){ $("table.datalist tr:nth-child(odd)").addClass("altrow"); });
對於上述程式碼jQuery也提供了簡寫,可以省略其中的"(document).ready"部分,程式碼如下:
$(function(){ $("table.datalist tr:nth-child(odd)").addClass("altrow"); });
4、建立DOM元素
利用DOM方法建立元素節點,通常需要將document.createElement()、document.create TextNode()、
appendChild()搭配使用,十分麻煩,而jQuery中使用"$"符號可以直接建立DOM元素。例如
var oNewP = $("
這是個好故事>")
以上程式碼等同於javascript中的如下程式碼:
var oNewP = document.createElement("p");// 新建节点 var oText = document.createTextNode("这是一个好故事"); oNewP.appendChild(oText);
另外,jQuery也提供了DOM元素的insertAfter()方法,偽程式碼如下:
$(function(){ // ready函数 var oNewP = $("<p>这是一个好故事</>");// 创建DOM元素 oNewP.insertAfter("#myTarget");// insertAfter()方法 }); <body> <p id="myTarget">插入到这行文字之后</p> <p>也就是插入到这行文字之前,但这行没有id,也可能不存在</p> </body>
5.擴充jQuery--自訂新增"$"
#jQuery無法滿足所有使用者的所有需求,且有一些特殊的需求十分小眾,也不適合放到整個jQuery框架中,
用户可以自定义该方法。代码如下:
$.fn.disable = function(){ return this.each(function(){ if(typeof this.disabled != "undefined") this.disabled = true; }); }
以上代码首先设置".fn.disable",表明为""添加一个方法“disable()”,其中“$.fn”是扩展jQuery时所必须的
然后利用匿名函数定义这个方法,即用each()将调用这个方法的每个元素的disabled属性均设置为true(如果该属性存在)
6、使用jQuery和其他库
例如:Prototype库也是使用$符号,jQuery提供noConflict函数避免冲突,jQuery.noConflict();把$符号还原到非jQuery库定义的含义。
7、文档就绪处理程序,相当于$(document).ready(...)
例如:
$(function(){...}); //里面的函数会在DOM树加载完之后执行
扩展知识:解决"$"的冲突
如果其他框架也是用了“",会引起冲突,jQuery同样提供了noConflict()方法来解决""冲突问题
jQuery.noConflict();
以上代码可以使""按照其他javascript框架的方式运算,这时再jQuery中便不能在使用“”,而必须使用jQuery,
例如$("p p") 必须写成jQuery("p p").
【推荐学习:jQuery视频教程、web前端视频】
以上是jquery中的$有啥作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!