0
私は連想配列parentTds
を作成しようとしていますが、私が望むように動作していません。Javeryの連想配列はJqueryオブジェクトでは機能しません
var parentTds = {};
var index = 0;
$.each(clone, function() {
var $currentItem = $(selectedActivities[index]);
var $currentItemTd = $currentItem.closest('td');
console.log($currentItemTd.get(0));
var borderLeft = 0;
console.log(parentTds[$currentItemTd.get(0)]);
console.log(parentTds[$currentItemTd]);
if (typeof parentTds[$currentItemTd.get(0)] === "undefined") {
console.log('NOT OK');
borderLeft++;
parentTds[$currentItemTd.get(0)] = $currentItemTd;
} else {
console.log('OK');
}
index++;
});
何らかの理由により、parentTds[$currentItemTd.get(0)]
は常に最初に格納されたアイテムを返します。私はNOT OK
を数回以上得るべきであるのに対して、ループが実行されるのはちょうど1回目です。問題はparentTds[$currentItemTd.get(0)]
そのものと思われます。
どのようなアイデアをお願いしますか?
ヒント:JavaScript *オブジェクト*(「連想配列」ではなく)プロパティ名(キー)は常に文字列です。 '$ currentItemTd.get(0)'は文字列ではありませんが、キーとして使用しようとすると文字列に変換されます。 – nnnnnn
「クローン」と「selectedActivities」に含まれる内容について説明してください。また、この関数の目的はDOMのオブジェクトに親のtd要素を取得しようとしていることです。オブジェクトは親を1つしか持てないため、リストには1つのアイテムしか含めることができません。あなたがテーブルの列にすべての 'td'を取得するつもりでない限り?この質問には、達成しようとしていることをもう少し明確にする必要があります。 –
@nnnnnn:あなたは正しいです。私は関連配列の代わりに配列 '[]'を使用して終わりました。 –