Цепочка вызовов jQuery
Привет.
<body>
<div class="class0"> <a href="">link</a> </div>
<div class="class0"></div>
<div class="class0"></div>
</body>
<script>
proto={};
$ = function(selector){
var tags = document.querySelectorAll(selector);
tags.__proto__ = proto;
return tags;
}
proto.addClass = function(className){
for (var i = 0; i < this.length; i++){
this[i].classList.add(className);
}
return this;
}
proto.html = function(){
return this[0].innerHTML;
}
</script>
console.log( $('div').addClass('class1').html() ); так работает
console.log( $('div').addClass('class1').html().addClass('class 2').html() ); а так нет.
Функция html()
, с одной стороны, должна возвращать this[0].innerHTML
, а с другой - this
. Как это объединить, не знаю, как-то надо использовать toString()
/ valueOf()
.
Источник: Stack Overflow на русском