【问题标题】:Check if variable is greater than something but not undefined检查变量是否大于某个值但不是未定义
【发布时间】:2012-07-11 15:23:54
【问题描述】:
var ship = $("input[name=shippingamt]").length;
var counting1 = $(".submit-btn-1 li.checked:not(.title)").length;

if ((counting1 == 6)&&(ship >= 1)&&($('input[name=ideclare1]').is(":checked"))){

到目前为止,上面的 sn-p 是我所拥有的,几乎我有 3 个基本字段,一个名为 Ship 的变量,一个名为 counting1 的清单和一个复选框查看。

但如果 ShipChecklist 没问题,并且名为 ideclare1 的复选框被选中和未选中,则值 ship 变为未定义,并且仍然是与长度为 >= 1 一样有效的类。

能否建议如何检查字段是否已定义且长度是否大于 1?

问候,

唐纳德

【问题讨论】:

    标签: javascript jquery variables if-statement


    【解决方案1】:

    检查 jQuery 对象的.length

    var ideclare = $('input[name=ideclare1]');
    
    if ((counting1 == 6)&&(ship >= 1)&&(ideclare.length > 0 && ideclare.is(":checked"))){
    

    编辑如果您只是检查常规变量,只需将其与 undefined 进行比较:

    if (counting1 == 6 && (ship !== undefined && ship >= 1) ...
    

    【讨论】:

    • 对不起@Pointy 我需要检查的变量 ship >= 1 && 不是未定义的
    • 在执行 >= 1 之前不需要检查 undefined。如果 ship 未定义,它也不大于或等于 1 (undefined >= 1) === false
    • @BartRiemens 是的,这是真的,但检查起来并不可怕;右边的数字可能有一天会改变。
    • 尝试了一些类似的条件,但无法正常工作。 if (a > b && c !== undefined && a < c) {}ab 已声明,c 未声明。当 c 不是未定义时,我想要条件 a > b 和 a b。我错过了什么?你的最后一行是无效的。我认为对我来说会有问题。 @Pointy
    • @Caspert 您需要检查c 首先然后确定要进行的后续比较。
    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2016-07-02
    • 1970-01-01
    相关资源
    最近更新 更多