jQuery 原始碼 屬性

2022-05-03 06:18:05 字數 2658 閱讀 4512

對元素屬性的操作的例項方法。

jquery.fn.extend();

工具方法。

jquery.extend();

例子 :

新增屬性

$('#div1').attr('title', 'dongdong');

alert($('#div1').attr('title'));

設定屬性

$('#div1').prop('title', 'dangdang');

alert($('#div1').prop('title'));

原生的js設定,

var odiv = document.getelementbyid('#div1');

odiv.setattribute*('title', 'hello');

或者使用

odiv.title = 'hg';

odiv['title'] = 'hg'; 傳參可以用這個。

這裡 attr-->setattribute

poro-->[''] 或者 .

prop 和 attr 還是有很多不一樣的地方。一般用attr用的多一些。

// 刪除

removeprop(attr); // 無法刪除id屬性,其他可以

removeattr(attr); // 可以乾掉id這種,

jquery 支援 $('input').attr('checked', true); //選中當選框。

通過hooks處理的。解決了相容,但是個人覺得還是不要這麼寫

還是用 $('input').attr('checked', 'checked'); //好一些,保持了語音話,和原生的習慣,

寫js多了,看了很多框架,最大的感覺,就是原生,框架都是衍生品。都是美麗的房子,但是在美麗,也需要原生的磚頭去蓋。

能用原生,就用原生。只要有可能,就不用框架完成。

removeattr(string); //可以傳入引數。比日 aa bb cc。那麼就字串分割,然後依次乾掉。

原始碼: attr: function( elem, name, value )

// fallback to prop when attributes are not supported

// 有些元素不支援屬性操作的時候,

// core_strundefined 是undefiend。

// $(document).attr(); document 和 window 是無法設定這種的。

// 但是,支援 obj['attr'] 這種型別的繫結。

if ( typeof elem.getattribute === core_strundefined )

// all attributes are lowercase

// grab necessary hook if one is defined

// isxmldoc 第一次見。是sizzle的方法,sizzle.isxml,判斷當前節點是不是xml下的節點,是酒返回真

if ( ntype !== 1 || !jquery.isxmldoc( elem ) )

if ( value !== undefined ) else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) else

} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) else

},attrhooks: 鉤子機制,讓我想想到了windows,向總當時寫了乙個很牛的鉤子。看的我很心動啊。哈哈

這裡一看,就乙個set,那麼相容就是就是指針對設定。

針對功能檢測中的radio問題。 呃,具體細節不看了。。反正就是這個了。修復ie下面的bug

attrhooks:

return value;}}

} },

乾掉屬性。

removeattr: function( elem, value )

elem.removeattribute( name ); //原生的js

}} },

先存入nodetype,

然後判斷是不是xml。不是開始相容模式,是的話,進用xml的模式,不考慮相容性。

我都沒用過xml在js裡面,寫其他語言用xml做個配置檔案,做解析用。

其實xml理解為語義話的標籤就好了。實際上我感覺是解析用的。用個txt檔案也一樣可以做,

prop: function( elem, name, value )

notxml = ntype !== 1 || !jquery.isxmldoc( elem );

if ( notxml )

if ( value !== undefined ) else

},// 設定游標的切換。table建。

// html有個屬性,tabindex = 'number'; 可以改變國標的切換的順序。

// rfocusable = /^(?:input|select|textarea|button)$/i;

// 正則表示。看看事什麼框。都是可以獲取游標的節奏的節點。

prophooks:

} }

jQuery原始碼分析

工具 版本說明 版本號備註 jquery 2.1.1 sublime 3jquery function selector,context jquery.fn jquery.prototype 快速匹配正則 不加g 不光匹配整體項還會匹配到子項 rquickexpr s w w w init jque...

jquery原始碼解析

jquery 原始碼解析,參看 是jquery 3.0版本 入口jquery.js包含core.js,以及jquery的各類功能的組合,包括selector,ajax等等 然後將jquery物件匯出到全域性的jquery符號,以及 符號 確定jquery物件是個函式,這個函式生成出來的資料是物件 建...

jQuery原始碼分析

一 jquery如何做到不汙染變數名並暴露出 供使用者使用 jquery將變數和 寫進立即執行函式,通過函式來包裹所有的變數和方法,再在這個立即執行函式上將 jquery方法繫結到window上,就可以讓使用者使用到jq方法了。二 jquery是如何做到 jquery 的?function wind...