Înphp我会用它来查看变量是否已设置然后使用该值,否则将其设为零:
$pic_action = isset($_POST['pic_action']) ? $_POST['pic_action'] : 0;
但是javascript中的等价物是什么?
我想检查文档中是否存在元素,如果存在,则将其添加到变量中,否则为其添加一些其他值,这是我到目前为止所拥有的:
var areaOption = document.getElementById("element");
由于
答案 0 :(得分:1)
document.getElementById("element")
将返回null
- 如果元素存在,则返回null
。
这意味着您应该能够做到这样的事情:
var areaOption = document.getElementById("element");
if (areaOption) {
// element exists
} else {
// element doesn't exist
}
(您也可以将areaOption
与null
进行比较,而不仅仅是检查它是否是非虚假的)
答案 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 :
"";