если isset заявление с JavaScript? - PullRequest
1 голос
/ 05 января 2010

phn php Я хотел бы использовать это, чтобы увидеть, установлена ​​ли переменная, а затем использовать это значение, в противном случае сделать его нулевым:

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

Но что такое эквивалент в javascript?

Я хочу проверить, существует ли элемент в документе, а затем, если он есть, добавить его в переменную, в противном случае добавить к нему какое-то другое значение, вот что у меня есть:

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

Спасибо

Ответы [ 5 ]

1 голос
/ 05 января 2010
var areaOption = document.getElementById("element") || some_other_variable;
1 голос
/ 05 января 2010

isset() проверяет, определена ли переменная и не является ли она нулевой. Правила Javascript, отличные от PHP, проверять, определена ли переменная, сложнее. С другой стороны, вы можете определить, является ли оно пустым:

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

Затем, есть классическая идиома Javascript, использующая ленивую оценку ||:

areaOption = areaOption || ... ;

Последний не проверяет, является ли переменная нулевой, просто если она эквивалентна false, что означает, что правая часть будет оценена, даже если определено значение (и 0 или '') , что может быть небезопасно, если вы полагаетесь на действительные типы.

1 голос
/ 05 января 2010

document.getElementById("element") вернет null, если элемент не существует - и что-то нет - null, если он существует.

Это означает, что вы должны быть в состоянии сделать что-то вроде этого:

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

(Вы также можете сравнить areaOption с null, вместо того, чтобы просто проверить, не является ли это ложью)

0 голосов
/ 05 января 2010

Более многословный подход:

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 :
        "";
0 голосов
/ 05 января 2010

Я верю, что вы пытаетесь сделать что-то вроде этого:

var dummy = null;
var areaOption = (dummy = document.getElementById("element")) ? dummy.value : 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...