.getElementBy...
現在、JavaScript で DOM 呼び出しを使用している関数があります。
var $ = function (selector) {
var elements = [];
var lastSelector = selector.substring(selector.search(/[^#.]+$/), selector.length);
if(selector.includes('#') !== true || selector.includes('.') !== true) {
elements.push(document.getElementsByTagName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
}
return elements;
};
コードを使用する関数には、他にも多数の if ステートメントがあります。
elements.push(document.getElementsByTagName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
また
elements.push(document.getElementsByClassName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
理想的には、繰り返しをDRYしたいと思います:
elements = Array.prototype.slice.call(elements[0]);
if
しかし、要素がまだ入力されていないため、ステートメントの前に定義することはできません。したがって、空の配列とエラーでコードを実行しようとします。
助言がありますか?