即使元素不存在,如何使 javascript 继续

How to make javascript continue even if element is not present

这是我的问题:如果 #sizem and/or #sizedivided 以上的元素不存在,则以下代码将停止工作。当产品不需要 elements/id.

时,电子商务商店会删除 elements/id

在我看来,代码只有在所有元素同时存在时才有效。 还有另一种方法可以做到这一点并避免代码停止吗? 如果用户在尝试 purchase/add 到购物篮

时没有选择尺码 and/or 颜色,这应该适用于带有警报的下拉菜单
$('#prod-buy').click(function(){

  if ($("#color")[0].selectedIndex <= 0) {
            alert("Select color");
            return false;
        }

  if ($("#sizem")[0].selectedIndex <= 0) {
            alert("Select size");
            return false;
        }         

  if ($("#sizedivided")[0].selectedIndex <= 0) {
            alert("Select size");
            return false;
        }      
});

你需要测试是否有一个元素。直接从你的代码中你可以做到这一点

$('#prod-buy').click(function(){

    if ($("#color")[0] && $("#color")[0].selectedIndex <= 0) {
        alert("Select color");
        return false;
    }

    if ($("#sizem")[0] && $("#sizem")[0].selectedIndex <= 0) {
        alert("Select size");
        return false;
    }         

    if ($("#sizedivided")[0] && $("#sizedivided")[0].selectedIndex <= 0) {
        alert("Select size");
        return false;
    }      

});

通过这种方式,您可以在尝试访问对象(或未定义)的 属性 之前测试是否存在对象。还有其他方法可以清理它,但需要更多重组代码,因此会为您隐藏原因

您应该检查每个元素是否存在。

与jQuery使用长度属性:

if($('#sizem').length) {
    if ($("#sizem")[0].selectedIndex <= 0) {
        alert("Select size");
        return false;
    }         
}