如果用javascript的isset语句?

时间:2010-01-04 23:33:34

标签: php javascript

Înphp我会用它来查看变量是否已设置然后使用该值,否则将其设为零:

    $pic_action = isset($_POST['pic_action']) ? $_POST['pic_action'] : 0;

但是javascript中的等价物是什么?

我想检查文档中是否存在元素,如果存在,则将其添加到变量中,否则为其添加一些其他值,这是我到目前为止所拥有的:

    var areaOption = document.getElementById("element");

由于

5 个答案:

答案 0 :(得分:1)

如果元素不存在,

document.getElementById("element")将返回null - 如果元素存在,则返回null

这意味着您应该能够做到这样的事情:

var areaOption = document.getElementById("element");
if (areaOption) {
    // element exists
} else {
    // element doesn't exist
}

(您也可以将areaOptionnull进行比较,而不仅仅是检查它是否是非虚假的)

答案 1 :(得分:1)

var areaOption = document.getElementById("element") || some_other_variable;

答案 2 :(得分:1)

isset()检查变量是否已定义且不为null。 Javascript范围规则与PHP不同,检查变量是否定义更难。另一方面,您可以确定它是否为空:

if (areaOption === null) areaOption = ... ; 

然后,使用惰性评估||的经典Javascript习语:

areaOption = areaOption || ... ;

后者不会检查变量是否为空,只是它等于false,这意味着即使定义了值,也会评估右手部分(并且是0''),如果您依赖有效类型,这可能是不安全的。

答案 3 :(得分:0)

我相信你想要完成的事情是这样的:

var dummy = null;
var areaOption = (dummy = document.getElementById("element")) ? dummy.value : 0;

答案 4 :(得分:0)

更详细的方法:

var c = document.getElementById("a") ? document.getElementById("a") : "b";

或更短的版本:

var c = document.getElementById("a") || "b";


如果要访问给定元素上的属性(例如innerHTML),则该元素是否存在;第一个例子可以重写,如下:

var c = document.getElementById("a") ?
    document.getElementById("a").innerHTML /*element exists: return innerHTML*/ :
    "" /*element does not exist: return nothing*/;

......没有评论:

var c = document.getElementById("a") ?
        document.getElementById("a").innerHTML :
        "";