私はjQueryを使ってJavaScriptオブジェクトにフォームデータを変換する方法を探していたと私は、このスレッドに出くわした:Convert form data to JavaScript object with jQuery 最も人気のある答えはそれでこのコードを持っていますがjQueryの/ JavaScriptコードの説明
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) { // ???
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
コードの一部は、
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
オブジェクトがプッシュという名前のプロパティを持っていない(私は間違いだと思う)私が何をしているかの正確わからないということであります。 JS配列のメソッド.push()
は、要素を配列にプッシュするだけでなく、配列内の要素の数を返しますが、この場合は、それ以外の中括弧はありません。ご覧のとおり、o
がオブジェクトです。私はconsole.logでこのコードを試しましたが、決して実行しません。このif文の目的は何ですか?このコードは他のスレッドにもありますので、このコードの作成者が誰かわかりません。
はそれがo[this.name]
場合をチェックする愚かな方法です事前
1がのJavaScript/jQueryの関連すべてに該当すること、タイトルがより記述してください。 – JackHasaKeyboard