2016-08-29 3 views
1
var how = $('how'); 
var id = $('myId'); 
if ((how != null && !how.value.blank()) || myId != null) { 
    return true; 
} else { 
    alert('Error'); 
} 

Есть ли более простой способ проверить, нет ли null и проверить, является ли значение этого элемента пустым без необходимости выполнять оба? = Null, а затем значение вызова?Проверка того, что объект не имеет значения null до доступа к объекту

+0

Что такое 'how' и' '' jQuery? Кроме того, в какой момент запускается прототип? – nils

+0

Поскольку вопрос имеет тегированный прототип (и поскольку селектор недействителен селектор jQuery), я думаю, что можно с уверенностью предположить, что '' 'является прототипом, и вот как он вступает в игру. –

+0

@DavidHedlund: За исключением того, что тег [tag: propotype] не относится к этому вопросу. Если он использует [tag: prototypejs], OP должен использовать этот тег. – Cerbrus

ответ

2

Поскольку null является falsy, немного короче версия будет

if((how && !how.value.blank()) || myId != null) { 
    ... 
} 

Обратите внимание, что приведенный выше код и свой собственный фрагмент и предположим, что еслиhow существует, то он будет иметь свойство value, и будет исключение, если это не так.

+0

Зачем проверять myId! = Null, мы можем сделать это непосредственно myId, а также: if ((how &&! How.value.blank()) || myId) {} ​​ Просто для любопытства .... –

+1

@ankurverma : Главным образом потому, что я только обратился к той части вопроса, которую попросил ОП, оставив остальную часть фрагмента неповрежденной. Я также не хотел делать какие-либо предположения, которые еще не были подразумеваются в этом состоянии. Мы знаем, что «как» ожидается объект, потому что мы переходим к доступу к 'how.value', если он существует. Точно так же мы не знаем, какие значения действительны для 'myId'. Только по имени переменной можно предположить, что это целое число и что '0' является допустимым ненулевым значением. –

+0

Сказав это, я согласен с тем, что мы можем быть достаточно уверены, что ваше решение будет достаточным, поскольку мы знаем, что 'myId' определяется как значение' $ ('myId') ', что означает, что это, вероятно, узел DOM или null. –