未捕获的类型错误: 无法设置未定义的属性“背景颜色”

Uncaught TypeError: Cannot set property 'backgroundColor' of undefined

本文关键字:属性 未定义 背景 颜色 背景颜色 设置 类型 错误      更新时间:2023-09-26
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
});
可能是

因为clicked_cell没有样式属性。你能在控制台.log中输出clicked_cell变量吗?

你需要传递元素而不是值更改以下行

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]