(Web API > Element)
セレクタ指定による繰り返し処理
// jQuery
$(selector).each(function(i, el){
something...
});
// JavaScript
var elements = document.querySelectorAll(selector);
Array.prototype.forEach.call(elements, function(el, i){
something...
});
相対的な要素の取得
// jQuery
$(el).after(htmlString); // 1
$(el).before(htmlString); // 2
$(el).children(); // 3
$(el).next(); // 4
$(el).parent(); // 5
// JavaScript
parent.appendChild(el); // 1
el.insertAdjacentHTML('beforebegin', htmlString); // 2
el.children // 3
el.nextElementSibling // 4
el.parentNode // 5
特定の要素に指定されたクラス名を持っているか判定する
// jQuery
$(el).hasClass(className); // 指定のクラスが存在する場合はtrue、存在しない場合はfalseを返す
// JavaScript
var el = document.getElementById('container');
if (el.classList){
el.classList.contains(className); // hasClass()と同様に、containsで論理値を返す
} else {
// element.classNameから1つのクラスを抽出する正規表現
new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
}
要素の寸法と、そのビューポートに対する相対位置に関する情報を返す
// jQuery
$(el).offset();
>> {top: 11, left:11}
// JavaScript
var rect = el.getBoundingClientRect();
>> {top:11, height:11, left:11, right:11, bottom:11, width:11}
要素を削除する
// jQuery
$(el).remove(); // マッチしている自身の要素も含めて、子要素も全て削除する
// JavaScript
el.parentNode.removeChild(el);
クラスを削除する
// jQuery
$(el).removeClass(className);
// JavaScript
if (el.classList) {
el.classList.remove(className);
} else {
el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
属性値を設定する
// jQuery
$(el).attr('tabindex', 3);
// JavaScript
el.setAttribute('tabindex', 3);
指定した要素にクラスの追加と削除の切り替えを行う
// jQuery
$(el).toggleClass(className);
// JavaScript
el.classList.toggle(className);
HTML文字列をDOMノードの配列に変換する
// jQuery
$.parseHTML(htmlString);
// JavaScript
var parseHTML = function(str) {
var tmp = document.implementation.createHTMLDocument();
tmp.body.innerHTML = str;
return tmp.body.children;
};
parseHTML(htmlString);
イベントを設定する
// jQuery
$(el).on(eventName, eventHandler);
// JavaScript
el.addEventListener(eventName, eventHandler);