Опять не получается.
Пишу jQuery-подобную библиотеку, создаю методы:
$.proto.import( {
html : function ( content ) {
return this.attr( "innerHTML", content );
},
val : function ( content ) {
return this.attr( "value", content );
},
id : function ( content ) {
return this.attr( "id", content );
}
);
Всё работает, но это индусский код. У меня же там будет ещё и .href(), .name(), .title(), .src(), ну в общем все стандартные атрибуты.
Решил сделать так:
var attrs = {
"html" : "innerHTML",
"val" : "value",
"href" : 0,
"src" : 0
};
for ( var i in attrs ) {
$.proto[ i ] = function ( content ) {
return this.attr( attrs[i] || i, content );
}
}
Но метод перестаёт работать.
И что самое странное, если в attrs оставить только одну пару, например "html" : "innerHTML", то метод .html() начинает работать исправно! А если добавить пару "val" : "value" или любую другую, то он перестаёт работать. Стеснительный.