Объект проверки jQuery, если он существует

У меня есть объект, который я пытаюсь обработать в jQuery, если детали содержат текст. Обыскал все вокруг, но ничего не работает, например, это не работает:

if (typeof data.details[0].text !== "undefined") {JScode}

Формат 1 (json):

data = {kod: 4007, text: "Test.", details: []}

Формат 2 (json):

data = {kod: 9004, text: "Test.", details: [{code: 9999, text: "Error"}]}

Имя объекта - details, верно? Вы пробовали details.text? А details.details.text?

Orry 10.03.2018 17:31

details - это объект jQuery? Если так, то это должен быть if (details.text()).

connexo 10.03.2018 17:32
idownvotedbecau.se/itsnotworking Если бы вы указали сообщение об ошибке, его было бы намного проще решить.
connexo 10.03.2018 17:44

Гм, если детали могут быть пустым массивом или нет, я бы сделал эту проверку: data.details.length !== 0

Michelangelo 10.03.2018 17:52
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
4
29
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте использовать .length:

if (details[0].text.length > O) { it should exist }

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно как и Зачем, он решает проблему, что улучшит долгосрочную ценность ответа.

Alexander 10.03.2018 18:23
Ответ принят как подходящий

Вы должны проверить, есть ли details[0], прежде чем вы сможете проверить, что details[0].text не определен.

Вот несколько фрагментов:

let obj = {kod: 4007, text: "Test.", details: []}

if (typeof obj.details[0] !== "undefined" && typeof obj.details[0].text !== "undefined") {
  console.info("Defined");
} else {
  console.info("Undefined");
}

let obj = {kod: 9004, text: "Test.", details: [{code: 9999, text: "Error"}]}

if (typeof obj.details[0] !== "undefined" && typeof obj.details[0].text !== "undefined") {
  console.info("Defined");
} else {
  console.info("Undefined");
}

Это можно значительно сократить: if (obj.details.length && obj.details[0].text)

connexo 10.03.2018 17:46

Другие вопросы по теме