私はjquery(jquery-2.1.1)とコンストラクタ関数を使ってhtmlを構築しようとしています。しかし、このメソッドをforループで試してみると、ループを止めることはできません。それはなぜ起こるのか教えてもらえますか?なぜこのループは停止できませんか?
ここにコードがあります。どうもありがとう。
function tag() {
this.addClass = function(...theArgs) {
for (index in theArgs) {
this.$html.addClass(theArgs[index]);
}
}
this.setAttr = function(attr, value) {
this.$html.attr(attr, value);
}
this.append = function(...theArgs) {
for (index in theArgs) {
this.$html.append(theArgs[index]);
}
}
this.find = function(value) {
return this.$html.find(value);
}
this.empty = function() {
this.$html.empty();
}
this.remove = function(value) {
this.find(value).remove();
}
this.clone = function() {
return jQuery.extend(true, {}, this);
}
this.show = function() {
return this.$html[0];
}
}
function label(text) {
tag.call(this);
this.$html = $("<label></label>");
this.append(text);
}
for(var index = 0; index < 2; index++) {
var fieldLabel = new label(1);
console.log(index);
}
あなたは '.append()'に宣言されていない 'index'を持っています。それらは' for(index of theArgs){'です。変数を宣言してください: 'for(var index in theArgs){' –
...も 'addClass()'にあります。これらの一般的なエラーを見つけるには、ESLintのようなリンターを使用してください。それはあなたにたくさんの時間を節約します。 –
... Arrayで 'for-in'を使うのはJSではうまくありません。あなたは '...'構文を使っているので、ES6のものでOKでなければならないので、 'for-of'ループを使うことをお勧めします。 –