Тернарный оператор в jQuery не работает должным образом - PullRequest
0 голосов
/ 04 июня 2018

Я использую функцию jQuery для построения html-таблицы на основе некоторых доступных мне json.Я использую for loop для создания таблиц для каждой записи в моем JSON.В одном случае я хочу проверить значение элемента json, чтобы увидеть, есть ли у него значение.Если это так, я хочу построить ссылку HTML с изображением.Я подумал, что использование троичного оператора будет самым чистым путем проверки значения с помощью функции .isEmptyObject().Когда я это делаю, он не строит, как ожидалось, и ведет себя так, будто просто разочаровывается в этом.Вот что я попробовал.

    '<td> ' 
        + (!jQuery.isEmptyObject(json[i].pdf_files)) ? 
          ' <a href="http://site.example/assets/_images/products/pdf/' + 
          json[i].pdf_files + '" target="_blank"> <img src="img/pdf-32.png" alt="pdf" />&nbsp;Spec Sheet</a>'  : '' + 
   ' </td>'  + //continue with appending rest of table

Если я просто сделаю это, это сработает:

'<td> ' + ' <a href="http://site.example/assets/_images/products/pdf/' + json[i].pdf_files + '" target="_blank"> <img src="img/pdf-32.png" alt="pdf" />&nbsp;Spec Sheet</a> </td>' +

1 Ответ

0 голосов
/ 04 июня 2018

Так что добавьте круглые скобки вокруг всего троичного оператора, чтобы он знал, где остановиться.

'<td> ' + ( x ? 'foo' : 'bar' ) + '</td>'
...