jquery選擇器源碼
1. jquery源碼 ,jquery選擇器,javascript,正則表達式
quickExpr應該是個二義正則。前半段是:
^[^<]*(<[\w\W]+>)[^>]*$:我猜測意思是一個簡單的標簽。如$('<div>new Div</div>')匹配的用法。
後半段是:
^#([\w-]+)$:這個顯然就是id選擇器。->getElementById
注意兩個正則用了|來分隔二義,所以你這里的匹配不成功是正常的。
jquery應該是根據這個quickExpr來判斷
if(match[1]) createNewfragment();....
else if(match[2]) getElementById();
當然這只是個人猜測,沒有細讀jquery源碼。僅做參考
2. JQuery選擇器
+在JS中是連接符的意思,也可以被作為計算符使用,比如a=1+1,那麼a=2,這兒就是計算符,a="1"+"1",那麼a=11,這兒就是連接符。
這句話的意思是:
執行JQ代碼,$()
選擇id為rotmenu子節點的li中的nth-child?節點。
而nth-child後面的i就是前面的?,它是一個數字,但不知道是多少,應該在前面語句有循環,i會由0開始往上遞增。
因為在$()中的id name等,是字元類型,要用引號。所以在#ro...前就有個引號。
到了(這兒,又一個引號,說明這一段字元串完成了。
後面跟著一個+是指把前面後面的語句連起來
再後面跟一個i,這個i是一個變數,它應該是由循環生成的,比如for。
再後面再跟一個+繼續連接。
後面再')'完成此語句。
3. 如何正確閱讀jquery源碼和jquery插件源碼
1. jQuery 裡面有很多東西是出於兼容性,歷史遺留。
比如 .ready() 之類的函數,為什麼會很scroll 有關,那是為了兼容某些ie。這種代碼對於編程思想來說不僅沒用,而且是雜音,你要篩選出來就得了解這段代碼的變動,費心費力得不償失。
2. jQuery 裡面的代碼不一定是最優的,例如事件委託,每一次事件觸發都要調用選擇器,實際上是效率很低的。但是我又比較懶,沒有提交patch。
3. jQuery 實際上很容易寫出來一個 barebone alternative,在使用的過程中多想,多思考多總結就可以了。
4. jQuery 這類框架里真正有思維挑戰性的東西不多,一半以上是堆代碼而已,剩下的一點價值在於架構、抽象、擴展能力。
5. 我有一句話與所有的同行分享:工程師讓需求成為現實,優秀工程師化復雜為簡單,頂尖工程師變不可能為可能;架構師掌握現在,優秀架構師展望未來,頂尖架構師創造時代。
jQuery 的設計目的是,讓前端工程師的工作更簡單更輕松,但它並不適合所有的前端工程師,假如你的目標是成為優秀架構師、頂尖架構師的話,你在jQuery里也看不清未來。
4. 關於jquery選擇器的問題。代碼如下。
哦,這個其實你測試一下就知道了,我剛試過,你這樣寫是沒問題的
如果$(this).parents("#textHolder") 這個不包含ID為textHolder的HTML元素的話,container是為0的,因為parents()返回的是一個元素集合,既然是集合,肯定都有length這個屬性的,所以container.length不可能會只為1的
5. jquery選擇器的問題
table.tab-query:選擇 class 為 tab-query 的 table(表格)
:text[name$=Time]:選擇 name 以 Time 結尾的 text input
.attr("readonly", true):設置 readonly 屬性為 true (即設置 只讀)
.datepick():在此元素上調用日期選擇函數
何在一起就是
在【class 為 tab-query 的 table】下查找所有【name 以 Time 結尾的 text input】,將其【設置為只讀】,並且調用【datepick 日期選擇函數】
6. jQuery選擇器案例
$(document).ready(function() { $('table tr:not(:first)').each(function() { $(this).children('td:not(:first)').hover(function() { $(this).css('color', 'red'); }, function() { $(this).css('color', 'black'); }).click(function() { alert($(this).html()); }); }); });
7. jquery選擇器有幾種
1、jquery的選擇器有9種類型
(1)基本
#id
element
.class
selector1,selector2,selectorN
(2)層次選擇器:
ancestor descendant
parent > child
prev + next
prev ~ siblings
(3)基本過濾器選擇器
:first
:last
:not
:even
:odd
:eq
:gt
:lt
:header
:animated
(4)內容過濾器選擇器
:contains
:empty
:has
:parent
(5)可見性過濾器選擇器
:hidden
:visible
(6)屬性過濾器選擇器
[attribute]
[attribute=value]
[attribute!=value]
[attribute^=value]
[attribute$=value]
[attribute*=value]
[attrSel1][attrSel2][attrSelN]
(7)子元素過濾器選擇器
:nth-child
:first-child
:last-child
:only-child
(8)表單選擇器
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
(9)表單過濾器選擇器
:enabled
:disabled
:checked
:selected
8. jquery源碼中選擇器是怎麼實現的
jquery官方中沒有類選擇器這一說,所以自然不會存在。只是編程人員用到了選擇類方法的時候就叫他類選擇器了
9. jquery選擇器
$(function(){
$("#showimg ul li img").each(fucntion(
$(this).mouseover(function(){
alert($(this).attr("src"));
});
));
})
大哥,我就不明白了,你一點都不懂,你用Jquery幹嘛?