即使元素不存在,如何使 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;
}
}
这是我的问题:如果 #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;
}
}