처음에는 많은 사람들이 jquery의 선택기를 이 두 API와 비교할 것입니다(저도 마찬가지입니다). 유사점과 차이점을 비교하는 것은 괜찮지만, 이로 인해 일부 학생들은 특히 DOM에서 이 API를 호출할 때 브라우저에서 이 두 API의 구현을 오해하게 되었습니다. 요소.
다음은 jsFiddle 예제입니다. 이를 설명하기 위해 사용하겠습니다.
js 코드:
(function(global) {
global.doc = document;
global.body = doc.getElementsByTagName('body')[0];
global . $ = function(id) {
return doc.getElementById(id);
}
global.Logger = function(id) {
this.logElem = $(id); this .logArr = [];
};
global.Logger.prototype = {
생성자: global.logger,
append: function(comment) {
this.logArr.push( '
' 주석 '
');
},
flush: function() {
this.logElem.innerHTML = this.logArr.join(''); 🎜 >},
clear: function() {
this.logElem.innerHTML = '';
this.logArr = [];
})( this );
(function() {
var logger = new Logger('log');
var items = $('inner').querySelectorAll('#main h4.inside');
logger.append(items.length);
for(var i = 0, len = items.length; i < len; i ) {
logger.append(items[i].innerHTML);
}
logger.flush();
})();
(function(global) {
global.doc = document;
global.body = doc.getElementsByTagName( ' body')[0];
global.$ = function(id) {
return doc.getElementById(id)
}
global.Logger = function(id) {
this .logElem = $(id);
this.logArr = [];
};
global.Logger.prototype = {
생성자: global.logger,
함수( comment ) {
this.logArr.push('
' comment '
')
},
flush: function() {
this.logElem.innerHTML = this.logArr.join('');
},
clear: function() {
this.logElem.innerHTML = '';
this.logArr = []; }
};
})(this);
(function() {
var logger = new Logger('log');
var items = $('inner'). querySelectorAll ('#main h4.inside');
logger.append(items.length)
for(var i = 0, len = items.length; i < len; i ) {
logger .append(items[i].innerHTML);
}
logger.flush()
})()
html 코드: