Оператор if внутри переменной

Я создаю условное меню навигации, которое имеет 3 уровня (3-й уровень добавлен сегодня бизнесом, не беспокойтесь, это не похоже на то, что я запустил на следующей неделе. Ой, подождите, я делаю :)). У меня есть javascript var, содержащий html для моего первого условного уровня. Я сейчас пытаюсь вставить другой уровень внутрь первого.

var myVar = '<ul class = "linksUnit">';
var myVar += '<li>Link 1</li>';
var myVar += if (myVar2 != false) {document.write("Link 2")};
var myVar += '</ul>';

Любая помощь будет принята с благодарностью.

Спасибо

Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Принципы ООП в JavaScript
Принципы ООП в JavaScript
Парадигма объектно-ориентированного программирования имеет 4 основных принципа,
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
5
0
12 549
2

Ответы 2

Вы должны написать это так (я немного знаю javascript, но я думаю, что это правильно):

var myVar  = '<ul class = "linksUnit">';
myVar     += '<li>Link 1';
if (myVar2) { // note != false means true
    // insert a nested unordered list
    myVar += '<ul>';
    myVar += '<li>Link 2</li>';
    myVar += '</ul>';
}
myVar     += '</li>'; 
myVar     += '</ul>';

Var нужен только при первом объявлении переменной.

W3C DOM

Если вы создадите строку, которую вы добавляете / вставляете в свой документ таким образом, это скоро станет довольно запутанным. Например, если вы хотите что-то изменить, вам придется повозиться со строками. Лучше использовать API W3C DOM, который стандартизирован и обеспечивает чистый способ построения дерева элементов, которое можно добавить к любому дочернему элементу в дереве документа. Здесь вы найдете хорошее введение в этот вопрос: Введение в W3C DOM. Прочитав это, вы можете приступить к изучению методов W3C DOM. Вот хорошая ссылка: Ссылка на DOM2. Начните с document.createElement и продвигайтесь дальше.

Ради вашего здравомыслия и того, что придет после вас плохой программист по обслуживанию, на самом деле создайте нужные вам объекты DOM вместо того, чтобы использовать для них строки.

rmeador 03.12.2008 00:54

Этот парень признал, что на самом деле не знает JavaScript, не будьте слишком усердны с новичком ...

Jason Bunting 03.12.2008 01:17

Var myVar += (myVar2 != false ? "Link 2" : "");

Тернарный условный оператор и т. д.

MyVar + = (myVar2? "Ссылка 2": "");

some 03.12.2008 02:17

Что с "! = False" - не надо!

James 03.12.2008 02:31

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