JavaScript一线问题

时间:2010-11-12 09:28:11

标签: javascript jquery

此代码有效:

$('[id$=lbl]').val() == "0" ? alert('Bla') : null;

但这段代码没有:

$('[id$=lbl]').val() == "0" ? function(){alert('Bla'); return false; } : null;

$('[id$=lbl]').val() == "0" ? alert('Bla');return false; : null;

$('[id$=lbl]').val() == "0" ? return false : null;

在“返回错误”之后我需要“警告”

我该怎么做?

5 个答案:

答案 0 :(得分:2)

不确切地知道你要做什么(而且你错过了向我们展示错误信息 - 但你为什么不简单地使用像这样的“正常”if语句(这没有效果)在性能上,但更具可读性(我的意见),更容易改变(如果你必须在将来)):

if($('[id$=lbl]').val() == "0"){
  // do something
}else{
  // do something else
}

答案 1 :(得分:2)

你必须这样做:

$('[id$=lbl]').val() == "0" ? (function(){alert('Bla'); return false; })() : null;

function(){alert('Bla'); return false; }只是函数的声明。括号将执行它:(函数声明......)()

编辑:
你的意思是你需要这样做吗?:

function bla(){ return  ($('[id$=lbl]').val() == "0" ? (function(){alert('Bla'); return false; })() : (function(){return null;})() ); }

解释:
该函数将返回 (条件?val1:va​​l2) 表达式将返回...在这种情况下 val1 val2 都是函数,它们返回一些值(val1 - > false; val2 - > null;)并且该值由main(bla)函数返回

答案 2 :(得分:1)

这样做:

var test = $('[id$=lbl]').val() == "0" ? false : null;
if (test === false) {
    alert('Bla');
    return false;
}

您无法从?:构造中返回。即使你可能,这将是一个非常混乱的代码片段。代码的读取频率远远高于编写代码。

更好的是,如果你准备放弃?:构造完全使用@oezi的答案。

答案 3 :(得分:0)

你在做什么是不切实际的:

$('[id$=lbl]').val() == "0" ? alert('Bla');return false; : null;

您可以像这样检查其值:

alert($('[id$=lbl]').val());

要真实世界/实际,你应该这样做:

var myvalue = $('[id$=lbl]').val() == "0" ? when true : when false;

示例:

var myvalue = $('[id$=lbl]').val() == "0" ? '' : $('[id$=lbl]').val();

现在myvalue在包含0时将为空,或者具有指定字段的值。你可以根据你的要求改变方向。

答案 4 :(得分:0)

$('[id$=lbl]').val() === 0