@KitOsorgin

Как скрыть html элемент с помощью JS?

Имеется html страница, к которой подключена библиотека jquery, а также один скрипт.
Собственно, на странице реализован механизм, по которому в зависимости от нажатых кнопок меняются элементы на экране. В итоге, после одного из действий, один div блок сменяется другим. В новом div-е имеются различные элементы, некоторые имеют атрибут, прописанный в html - "hidden". Так, в зависимости от различных условий, когда данный div появляется на экране, определенные hidden элементы должны показываться, а показываемые по умолчанию - скрываться. По непонятным причинам, данная часть кода наотрез отказывается работать. Особенно напрягает то, что с другими элементами (те же упомянутые мной div-ы) - все в порядке, я буквально копирую команду на отображение, меняя лишь ID элементов - эффекта ноль. Ниже привожу html код div-а и часть кода скрипта js:

<div class="holder">
                    <div class="text__holder">
<b>                        <p class="mid__text" id="emailAd" >текст 1</p></b>
                        <div class="timer__holder">
                            <div class="timer" id="confirmTimerMin">00</div>
                            <p class="timer">:</p>
                            <div class="timer" id="confirmTimerSec">60</div>
                        </div>
<b>                        <p class="mid__text" id="phoneAd" hidden>текст 2</p></b>
                    </div>
                </div>
                
                <form class="form__vertical__center" id="ConfirmForm">
                    <p class="error__text" id="errorCode" hidden>ошибка</p>
                    <input class="input__mid" id="Code" name="Code" placeholder="полученный пароль">
            <input class="box__button__big" id="confirmButton" name="confirmButton" type="submit" value="Отправить">
                    <input class="box__button__big" id="retryButton" name="retryButton" type="submit" value="Отправить повторно" hidden>
                </form>
            </div>


if (state === 0) {                                    
                        document.getElementById("clientReg").hidden=true;
                        document.getElementById("regConfirm").hidden=false;
<b>                        if (login_type === 1) {
                            document.getElementById("emailAd").hidden=false; 
                            document.getElementById("phoneAd").hidden=true;
                        } else if (login_type == 2) {
							 alert ('проверка');
                            document.getElementById("emailAd").hidden=true; 
                            document.getElementById("phoneAd").hidden=false;
                        }</b>
                        Timer();
                    }


Жирным я выделил то, где имеется проблема. Могу заметить, что условия выполняются корректно - прописанный alert появляется как надо. Также думал о том, чтобы заменить два элемента одним и работать с innerHtml текстом, или менять кавычки с двойных на одиночные (смех смехом, а у меня так innerHtml не работал с двойными, а с одиночными - вполне) или выбирать элемент с помощью средств jQuery - результат тот же, безуспешный. В общем, ситуация сводит сума, возможно, дело в какой-то мелочи, как это обычно бывает, но ничего не выходит. Крайне прошу помочь, заранее благодарю!
  • Вопрос задан
  • 20597 просмотров
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
У вас конечно что html-разметка, что код просто ужас-ужас . Начнём с того, что вы используете то ===, то ==. Вы уж определитесь, оставьте лучше ==. Это потенциальный источник ошибки, мы же не знаем, что вы там делаете с переменной login_type по дороге.

if (login_type == 1) {
	$('#emailAd').show();		
	$('#phoneAd').hide();
} else if (login_type == 2) {
	$('#emailAd').hide();		
	$('#phoneAd').show();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
foxyrus
@foxyrus
Отладкой в браузере не пользуешься?
Используй document.getElementById("emailAd").style.display = "none";
или на JQuery $('#emailAd').hide();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы