Во-первых, вам нужно точно определить, что это за требования. В вашем коде вы тестируете undefined
jQuerys реализация html никогда не возвращает undefined
, поэтому нет никаких оснований для тестирования на это. Однако там может или не может быть причиной для проверки на нуль
<div id="spanSelectedLayout">content</div>
var txt = $("#spanSelectedLayout").html() //txt will be "content"
<div id="spanSelectedLayout"> </div>
var txt = $("#spanSelectedLayout").html() //txt will be return " "
<div id="spanSelectedLayout"> </div>
var txt = $.trim($("#spanSelectedLayout").html()) //txt will be return ""
<div id="spanSelectedLayout"> </div>
var txt = $("#spnSelectedLayout").html() //txt will be null
Последнее, скорее всего, происходит из-за пропустить орфографии селектор, т.е. ошибка, так что вы, вероятно, следует рассматривать, что иначе, чем «» или все пробельная строка. но "", и все пробелы HTML семантически одинаковы, поэтому вы должны, вероятно, относиться к таким значениям, которые могут привести к
var selectedLayOutIdx = $. trim ($ ("# spanSelectedLayout"). html()); если (selectedLayOutIdx == «») {// пусто }
Однако $.trim(null)
возвращает ""
, а не нулевой, так что будет еще скрыть ошибку, и вы для этого придется выбирать между более выразительным кода или что-то вроде это
var selectedLayOutIdx=$("#spanSelectedLayout").html();
if(selectedLayOutIdx == null) { throw "Invalid selector" }
if( && $.trim(selectedLayOutIdx) == "") {
//is empty
}
Лучший ответ! Я должен нести ответственность за рецензента о будущем. –