奇怪的jQuery行为

时间:2013-07-31 14:36:02

标签: javascript jquery

我知道$("#SendingType").val(2)将select的值设置为2。

那么,为什么会这样呢?

$(function () {
    $("#calculate").click(function () {
        var result = $("#SendingType").val();
        var day1 = eval(result) + 3;
        var day2 = eval(result) + 10;
        var day3 = eval(result) + 2;
        if ($("#SendingType").val(2)) {
            $("#result").text(day1 + " and " + day2 + " days.");
        } else {
            $("#result").text(day1 + " and " + day3 + " days.");
        }
    });
});

我知道这不是编码if语句的正确方法。

已解决:谢谢Jason和Juhana。代码不会转到其他地方,我认为这是因为select的值会影响if结果。由于新的选择值,总是如果但是结果不同。

FIDDLE

1 个答案:

答案 0 :(得分:5)

让我觉得它运行true分支,无论如何:

http://jsfiddle.net/tMwRV/

哪个有道理。您将值设置为2,而不是检查值。语句$("#SendingType").val(2)返回一个jQuery对象,它是“truthy”。