私はHTML要素(複数可)、選択のCSSに変更を加えるために使用されstylise
という名前の一つの方法を、持っている引数としてセレクタを受け取るオブジェクトを作ってるんです。使用オブジェクトを直接
コード:
/* ----- JavaScript ----- */
function get(selector) {
var
self = {},
elements = Array.from(document.querySelectorAll(selector));
this.stylise = function(object) {
Object.keys(object).forEach(function(propertyName) {
for (var index = 0; index < elements.length; index++) {
elements[index].style[propertyName] = object[propertyName];
};
});
};
return Object.setPrototypeOf(self, this.prototype);
};
<!----- HTML ----->
<input id = "text" type = "text" style = "padding: .5em .7em;"/>
ラインreturn Object.setPrototypeOf(self, this.prototype);
が好きで、それを呼び出すことにより、期待通りに上記のコードは動作しますスキップされた場合:
var a = new get("#text");
a.stylise({
backgroundColor: "yellow",
borderRadius: "5px"
});
しかし、私は上記を動作させたい呼び出すことによってそれが好き:Object doesn't support property or method 'stylise'
:
get("#text").stylise({
backgroundColor: "yellow",
borderRadius: "5px"
});
私はコンソールで次のエラーを得たように私はObject.setPrototypeOf(self, this.prototype)
を使用してそれを達成しようとしたが、無駄に。
私のコードのどの部分がこれを引き起こしていますか?どのように解決できますか?
Thanks @ T.J。、あなたの答えは素晴らしい作品です。それは非常に徹底的で、私の問題を解決するための素晴らしい代替案を提供します。 –