jQuery屬性操作(四)

2021-09-06 13:17:41 字數 2446 閱讀 5331

通過閱讀jquery為屬性操作封裝的基本方法和為處理相容性問題提供的hooks,發現jquery在屬性操作方面並沒有做過多的設計,只是處理一下相容性問題,然後呼叫基礎的dom操作方法。以下是對jquery提供的基礎方法的閱讀:

jquery.fn.extend(,

// 遍歷jquery物件中的所有元素,對每乙個元素呼叫$.removeattr方法

removeattr: function( name ) );

},// 呼叫access方法進行引數整理之後呼叫$.attr方法

prop: function( name, value ) ,

// 遍歷jquery物件中的所有元素,直接刪除該元素的相應屬性

removeprop: function( name ) );

},addclass: function( value ) );

}// 如果value是字串

if ( proceed )

}// 刪除最後得到的class字串前後兩端的空格之後賦值給當前元素的classname屬性

elem.classname = jquery.trim( cur );}}

}// 為了實現鏈式操作,返回this

return this;

},// 刪除class和增加class的邏輯基本一致

removeclass: function( value ) );

}if ( proceed )

}elem.classname = value ? jquery.trim( cur ) : "";}}

}return this;

},// toggleclass是通過呼叫addclass和removeclass來實現的。 

toggleclass: function( value, stateval )

// 如果是個function,執行之後結果作為引數繼續呼叫toggleclass

if ( jquery.isfunction( value ) ) );

}// toggleclass的主體部分

return this.each(function() else

}// 如果使用者在呼叫toggleclass時沒有傳入class,則對已經有的所有class進行toggle

} else if ( type === core_strundefined || type === "boolean" )

// 如果當前元素有class或者沒有value(說明沒有傳value,而是傳入了stateval,這個時候是想要刪除class),清空classname,否則從快取中拿出來添      // 加給classname屬性

this.classname = this.classname || value === false ? "" : data_priv.get( this, "__classname__" ) || "";

}});

},hasclass: function( selector )

}// 預設false

return false;

},// 得到或刪除元素值

val: function( value )

// 如果不存在hooks,則正常處理,直接拿到元素的value

ret = elem.value;

return typeof ret === "string" ?

ret.replace(rreturn, "") :

ret == null ? "" : ret;

}return;

}// 看引數是否是function

isfunction = jquery.isfunction( value );

// 處理有引數的情況(設定元素值)

return this.each(function( i )

// 如果是function,將執行結果賦值個val

if ( isfunction ) else

// 如果val為null,則賦值為空字串

if ( val == null ) else if ( typeof val === "number" ) else if ( jquery.isarray( val ) ) );

}// 看是否有對應的hooks

hooks = jquery.valhooks[ this.type ] || jquery.valhooks[ this.nodename.tolowercase() ];

// 如果沒有對應的hooks,或者hooks中沒有set方法,或者執行hooks的set方法返回的是undefined(這裡其實默默的執行了hooks的set方法)

if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined )

});}

});

jquery操作屬性

設定或返回被選元素的屬性值 img attr img attr title function 每乙個匹配的元素中刪除屬性 img removeattr src checked,selected屬性的設定和獲得應該使用該函式,返回值和設定值應該使用true和false 刪除由.prop 方法設定的屬性...

jquery 屬性操作

input attr value 獲取input的id input attr value 孫悟空 為input的value屬性設值為孫悟空 input attr 為input設定多個屬性 input attr value function 為input設定value屬性為方法返回值 input re...

Jquery 屬性操作

jquery 屬性操作 方法 selector addclass class button click function 2 removeclass 向匹配的元素移除指定的類名。定義和用法 removeclass 方法從被選元素移除乙個或多個類。注釋 如果沒有規定引數,則該方法將從被選元素中刪除所有...