Я довольно новый веб-разработчик, изучающий html5 и javascript.Передача «этого» в качестве аргумента
У меня есть веб-страница с вкладками, которые заставляют части веб-страницы исчезать и снова появляться.
Звенья, как это:
<a href="?tab=1" id="t1" class="tab" onclick="switchf('Home',this)">HOME</a>
и Javascript функция switchf()
как это:
function switchf(field,tab) {
var divs = ["Home","About","Chatroom","Account","Contact","Signup"];
for(var j = 0; j < divs.length; j++) {
if(field != divs[j])
document.getElementById(divs[j]).style.display = "none";
else
document.getElementById(divs[j]).style.display = "block";
}
var t = document.getElementsByClassName("tab");
for(var i = 0; i < t.length; i++) {
t[i].style.backgroundColor = "#dddddd";
}
tab.style.backgroundColor = "#cccccc";
document.getElementsByTagName("title")[0].innerHTML = field;
}
Он принимает два аргумента - часть страницы, чтобы появиться и вкладка, которая была нажат.
Он перемещается по частям страницы и изменяет их все на display="none"
, затем переходит на все вкладки и изменяет их на backgroundColor="#dddddd"
.
Затем он выбирает правильную вкладку, чтобы изменить цвет и отобразить правую часть страницы.
Однако, когда я прохожу this
в качестве аргумента (onclick="switchf('Home',this)"
), он не меняет цвет (tab.style.backgroundColor = "#cccccc";
).
Это правильный способ пройти this
в качестве аргумента? Я решил, что это будет самый простой способ, но я никогда не использовал его в js раньше, и в этом примере это не работает.
Как и все мои другие ошибки, это, вероятно, очень простой, но, пожалуйста, укажите его мне.
Спасибо.
все еще, похоже, перезагружает страницу. –
@Jon: Если вы правильно изменили код, он перезагрузит страницу только в случае сбоя JavaScript раньше, чем 'return false;'. Проверьте наличие ошибок в консоли разработчика. – user2736012
Я только что выяснил, что в javascript этой строки была прочитана ошибка «Uncaught TypeError: Can not read property» из null »: document.getElementById (divs [j]). Style.display =" none "; 'что это значит? –