昨今、JavaScript の API が充実している ことにより ブラウザ間の差異を吸収する という当初の技術選定の理由が弱くなっている。jQuery メソッドと等価なネイティブコードをいくつか掲載する。また、You Don't Need jQuery でも多数掲載されている。
$(document).ready(function () {
// ここにコードが入る
});
document.addEventListener('DOMContentLoaded', function () {
// ここにコードが入る
});
$('.element').trigger('click');
var clickEvent = new Event('clcik');
document.querySelector('.element').dispatchEvent(clickEvent);
function trigger(selector, eventType) {
document.querySelector(selector).dispatchEvent(new Event(eventType));
}
$('.element').on('mouseover', '.element-item', function () {
// ここに処理を記述する
});
document.querySelector('.element').addEventListener('mouseover', function (event) {
if (event.target.className === 'element-item') {
// ここに処理を記述する
}
});
$('.element-item').off('mouseover')
document.querySelector('.element-item').removeEventListener('mouseover', EventListener)
※ EventListener は、イベントターゲットから削除するイベントハンドラー
$('ul > li').each(function () {
// ここに順次処理したいコードを記述する
// 順次処理される要素は `this` に格納される
})
[].forEach.call(document.querySelectorAll('ul > li'), function (element) {
// ここに順次処理したいコードを記述する
// 順次処理される要素は `element` に格納される
});
Array.from(document.querySelectorAll('ul > li'), element => {
// ここに順次処理したいコードを記述する
// 順次処理される要素は `element` に格納される
});
$('.element').hasClass('element')
document.querySelector('.element').classList.contains('element');
$('.element').show();
$('.element').hide();
document.querySelector('.element').style.display = 'block';
document.querySelector('.element').style.display = 'none';
var elements = $('ul > li');
var element = $('.element');
var index = elements.index(element);
var elements = document.querySelectorAll('ul > li');
var element = document.querySelector('.element');
var index = [].slice.call(elements).indexOf(element)
const elements = document.querySelectorAll('ul > li');
const element = document.querySelector('.element');
const index = Array.from(elements).indexOf(element);
$('.element').offset();
var rect = document.querySelector('.element').getBoundingClientRect();
var currentScrollTop = document.scrollingElement.scrollTop || document.documentElement.scrollTop;
var currentScrollLeft = document.scrollingElement.scrollLeft || document.documentElement.scrollLeft;
var offset = {
top: rect.top + currentScrollTop,
left: rect.left + currentScrollLeft
};
function getOffset (el) {
var rect = document.querySelector(el).getBoundingClientRect();
var currentScrollTop = document.scrollingElement.scrollTop || document.documentElement.scrollTop;
var currentScrollLeft = document.scrollingElement.scrollLeft || document.documentElement.scrollLeft;
return {
top: rect.top + currentScrollTop,
left: rect.left + currentScrollLeft
};
}
$('.element').click(function() {
$('html, body').animate({ scrollTop: 0 }, duration);
return false;
});
document.querySelector('.element').addEventListener('click', function () {
document.querySelector('html, body').scrollIntoView({behavior: 'smooth'})
});
※ scrollIntoViewOptions
は、現時点(2018/12/11 現在)では一部のブラウザのみサポートされている。サポート状況はこちらを参照ください。