Javascript关联数组不适用于Jquery对象

时间:2017-04-20 04:08:15

标签: javascript jquery

我正在尝试构建一个关联数组parentTds但是它没有按照我想要的方式工作。

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)]始终返回存储的第1项。我在第一次循环运行时得到NOT OK,而我应该再次NOT OK。我怀疑问题是parentTds[$currentItemTd.get(0)]本身。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Javascript并不像PHP那样宽恕。当你使用它时:

if (typeof parentTds[$currentItemTd.get(0)] === "undefined") {

$currentItemTd.get(0)可能被评为0,因此引用始终为parentTds[0]

在这种情况下,我用来打破代码块并执行以下操作:

var cig = $currentItemTd.get(0);
if (typeof parentTds[cig] === "undefined") {