оператор if внутри переменной - PullRequest
5 голосов
/ 03 декабря 2008

Я создаю меню условной навигации, которое имеет 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>';

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

Спасибо

Ответы [ 2 ]

10 голосов
/ 03 декабря 2008

Вы должны написать это таким образом (немного зная 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 и продолжайте свой путь.

7 голосов
/ 03 декабря 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...