Я создаю условное меню навигации, которое имеет 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>';
Любая помощь будет принята с благодарностью.
Спасибо
Вы должны написать это так (я немного знаю 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 нужен только при первом объявлении переменной.
Если вы создадите строку, которую вы добавляете / вставляете в свой документ таким образом, это скоро станет довольно запутанным. Например, если вы хотите что-то изменить, вам придется повозиться со строками. Лучше использовать API W3C DOM, который стандартизирован и обеспечивает чистый способ построения дерева элементов, которое можно добавить к любому дочернему элементу в дереве документа. Здесь вы найдете хорошее введение в этот вопрос: Введение в W3C DOM. Прочитав это, вы можете приступить к изучению методов W3C DOM. Вот хорошая ссылка: Ссылка на DOM2. Начните с document.createElement и продвигайтесь дальше.
Этот парень признал, что на самом деле не знает JavaScript, не будьте слишком усердны с новичком ...
Var myVar += (myVar2 != false ? "Link 2" : "");
Тернарный условный оператор и т. д.
MyVar + = (myVar2? "Ссылка 2": "");
Что с "! = False" - не надо!
Ради вашего здравомыслия и того, что придет после вас плохой программист по обслуживанию, на самом деле создайте нужные вам объекты DOM вместо того, чтобы использовать для них строки.