未捕获的TypeError:无法设置未定义的属性'backgroundColor'

时间:2015-11-01 17:29:37

标签: javascript jquery

function put_to_cart_event(prodtitle, price, clicked_cell){
    var td = clicked_cell;
    alert(td);
    put_to_cart_({title: prodtitle, price: price}, function () {
        td.style.backgroundColor = '#859de6'; // <--- problem
    });
}

警报正在提供[object Object],这意味着clicked_cell可用且可访问,对吧?

我在这里错过了什么?

正在调用该函数:

$('.abindenwarenkorb').on('click', function(){
    var productname = $('#productname').text();
    var price = $('#price').text();
    var in_stock = $('#in_stock').text();
    var clicked_cell = $('#clicked_cell').val(); //value is set like $('#clicked_cell').val($(this));
    put_to_cart_event(productname, price, clicked_cell); // <-- call
});

2 个答案:

答案 0 :(得分:0)

可能是因为clicked_cell没有样式属性。你能在console.log中输出clicked_cell变量吗?

答案 1 :(得分:0)

您需要传递元素而不是值 改变以下行

var clicked_cell = $('#clicked_cell');

见下面的代码:

$('.abindenwarenkorb').on('click', function(){
    var productname = $('#productname').text();
    var price = $('#price').text();
    var in_stock = $('#in_stock').text();
    var clicked_cell = $('#clicked_cell');
    put_to_cart_event(productname, price, clicked_cell); // <-- call
});

编辑: 在进一步阅读您的代码时,我注意到了这条评论。

//value is set like $('#clicked_cell').val($(this));

此代码无效$('#clicked_cell').val($(this))您无法将对象设置为值。只允许可序列化的值。 其他方面它将被转换为字符串,在您的情况下它[object Object]