Pengguna:Kurniasan/ez.js
Penampilan
Catatan: Selepas diterbitkan, anda mungkin perlu memintas cache pelayar web untuk melihat perubahan.
- Firefox / Safari: Tahan Shift sambil klik Reload, atau tekan sama ada Ctrl-F5 atau Ctrl-R (⌘-R pada Mac)
- Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R pada Mac)
- Edge: Tahan Ctrl sambil tekan Refresh, atau tekan Ctrl-F5.
var ez = function(s, attr, ch) {
return new ez.Dom(s, attr, ch);
}
ez.Dom = function(s, attr, ch) {
this.__init__(s, attr, ch);
}
ez.Dom.prototype = {
__init__ : function(s, attr, ch) {
if (!s.match(/^[a-z].*$/i))
throw new Error('Invalid selector');
var tag = s.split(/[.#[{]/,1)[0];
if ((this.element = e = document.createElement(tag)) instanceof HTMLUnknownElement)
throw new Error('Unrecognized HTML tag: ' + tag);
if (m = s.match(/[.#][\w-]+/g)) {
for (i=0;i<m.length;i++) {
if (m[i][0] == '#')
e.id = m[i].slice(1);
else if (m[i][0] == '.')
e.classList.add(m[i].slice(1));
console.log(m[i]);
}
}
if (attr !== undefined) {
for (a in attr)
e.setAttribute(a, attr[a]);
}
if (m = s.match(/\{([^}]+)\}$/))
e.innerHTML = m[1];
if (ch !== undefined)
this._handleChildren(ch);
return this;
},
_handleChildren : function(ch) {
if (ch instanceof ez.Dom)
this.element.appendChild(ch.element);
else if (ch instanceof Array) {
for (i=0; i<ch.length;i++) {
c = ch[i];
this._handleChildren(c);
}
} else if (typeof(ch) == 'string' || typeof(ch) == 'number') {
var dom = document.createTextNode(ch);
this.element.appendChild(dom);
}
}
}