0
По какой-то причине в приведенном ниже коде currentRow.cells возвращает {}. Как я могу проверить это? Я не хочу выполнять строки, если currentRow.cells возвращает {}.Как проверить значение {} в JavaScript?
currentRow = document.createElement("TR");
if(currentRow.cells.length > 0) { .. do something }
UPDATE 1:
Все, что я хочу, чтобы проверить на пустой объект. если currentRow.cells - пустой объект, то ничего не делать.
Это пустой объект. И вопрос непонятен. – zerkms
Вы делаете 'createElement ('tr')'. Разве это не сделает новый '
@Rocket Да, как я могу проверить пустой объект. Бывают случаи, когда это не пусто. – azamsharp
ответ
jQuery имеет вспомогательный метод, называемый
$.isEmptyObject()
.Их код это просто:
Если вы не хотите использовать всю библиотеку JQuery, вы можете поймать этот метод и бросить его где-нибудь в свой код базы!
источник
2012-05-09 22:01:03 Jason
Проблема 'currentRow.cells' - не простой объект, это [' HTMLCollection'] (https://developer.mozilla.org/En/DOM/HTMLCollection), поэтому это не работает. –
Я просто отвечаю на вопрос, который спросил OP: «Все, что я хочу, это проверить пустой объект». – Jason
", если currentRow.cells является пустым объектом" К сожалению, это не сможет проверить, является ли currentRow.cells пустым объектом. Все, что он сделает, это сказать вам, является ли 'currentRows.cells'' undefined' или нет. –
Чтобы ответить на ваш вопрос в заголовке:
источник
2012-05-09 22:01:21 stewe
Проблема 'currentRow.cells' - не простой объект, это [' HTMLCollection'] (https://developer.mozilla.org/En/DOM/HTMLCollection), поэтому это не работает. –
Я всегда получаю объект типа HTMLCollection.
Вы должны быть в состоянии затем проверить длину коллекции с помощью кода, как это:
источник
2012-05-09 22:03:28 Jordan
currentRow
является<tr>
(илиHTMLTableRowElement
), иcurrentRow.cells
являетсяHTMLCollection
(не Array ([]
) или объект ({}
)).Если
currentRow.cells
не определено, это означает, чтоcurrent
строка не является<tr>
, это еще один элемент.Чтобы проверить, является ли DOM элемент пуст, вы можете использовать
childNodes
(это не никогда бытьundefined
).Редактировать: Еще лучше, вы можете использовать
hasChildNodes
.источник
2012-05-09 22:11:39
cells
свойство не доступно в<tr>
на IE8 и ниже. Тренировка состоит в том, чтобы использоватьchildNodes
, как было предложено выше. Следующий код проверяет, не определено лиcells
:источник
2012-05-10 03:29:34 shingokko
Смежные вопросы