2016-09-19 2 views
-1

Я пишу простую функцию, которая делает мое меню динамическим, загружая страницы при нажатии кнопки. HTML выглядит следующим образом:Значение по умолчанию переменной

<button id="appnav" value="button1" type="button" onclick="app(this.value)">Button 1</button> 
<button id="appnav" value="button2" type="button" onclick="app(this.value)">Button 2</button> 
<button id="appnav" value="button3" type="button" onclick="app(this.value)">Button 3</button> 


<div id="app-div"> 

</div> 

и JavaScript-файл выглядит следующим образом:

function app(clickVal) { 
var clickVal; 

    if (clickVal == "button1") { 
    document.getElementById("app-div").innerHTML = "PAGE 1"; 
    } 

    else if (clickVal == "button2") { 
document.getElementById("app-div").innerHTML = "PAGE 2"; 
    } 

    else if (clickVal == "button3") { 
document.getElementById("app-div").innerHTML = "PAGE 3"; 
    } 

} 

И эта часть работает хорошо, но окно (DIV ID = "приложение-ДИВ") пуст, пока один из нажимаются кнопки. Я хотел бы присвоить ему значение по умолчанию. Я пытался сделать это, написав эту функцию

function defaultValue() { 
     document.getElementById('app-div').innerHTML = "PAGE 1"; 
    } 

и пытается запустить его OnLoad АРР-DIV, но он по-прежнему не работает. У кого-нибудь есть идеи?

Спасибо!

+3

Просто поместите исходный HTML в DIV ... ''

PAGE 1
Scott

+0

на дом готов, вызовите функцию – slashsharp

+0

Если вы не можете добавить его в HTML для какой-то причине, просто добавьте 'приложение (» button1 ")' после функции, и убедитесь, что все это находится в элементе script после рассматриваемого div. (Кроме того, не связанный с тем, что вы просите, удалите 'var clickVal;' с начала функции, не имеет смысла повторно использовать аргумент функции.) – nnnnnn

ответ

0

Код выглядит правильно. В функции defaultValue проверьте, что «document.getElementById (« app-div ») не имеет значения null или undefined. Также просто чтобы выбросить это, вы установите innerHTML на строку «СТРАНИЦА 1». Я предполагаю, что вы знаете, что это не синтаксис HTML. Возможно, вы должны установить значение для фактического содержимого с тегами HTML с текстом «СТРАНИЦА 1» в качестве содержимого div, например.

+0

Да, я в конечном итоге планирую добавить элементы React DOM, поэтому значения представляют собой фактический HTML. Спасибо. –

+0

Почему проблема '.innerHTML' в' "PAGE 1" 'была проблемой? Это допустимый контент для элемента div, нет необходимости включать дополнительные теги. – nnnnnn

+0

Это не проблема, скорее наблюдение/вопрос. –

0

Вы можете вызвать функцию значения по умолчанию, если ваш DOM готов к модификациям:

document.addEventListener('DOMContentLoaded', defaultValue, false); 

Фрагменты ниже может быть добавлен в целях совместимости:

window.addEventListener('load', defaultValue, false); 

document.attachEvent("onreadystatechange", defaultValue); 

window.attachEvent("onload", defaultValue); 
0

Это может устранить функцию default значения и позвоните по телефону

function app(clickVal) { ... } 

app("button1"); 

, даже если это de значение ошибки должны быть указаны непосредственно в HTML

<div id="app-div"> PAGE 1</div> 
+0

Я указал значение по умолчанию в HTML, и это работает, я думаю, это не приносит мне никакого пользы, чтобы сделать это любым другим способом. –

+0

работает и должен работать –

0

Вы можете просто

<div id="app-div"> 
    PAGE 1 
</div> 

При нажатии на кнопку, то innerHtml из #app-div будет заменен. Нет необходимости в defaultValue()

Смежные вопросы