Подтвердить что ты не робот

Как изменить отображение div с помощью javascript

У меня есть div следующим образом:

<div id="div1" style="display:none">

Чтобы сделать его видимым снова, я безуспешно пытался:

document.getElementById('div1').style.display = ''

Как изменить стиль отображения div так, чтобы он снова отображался?

EDIT:, очевидно, что-то еще не так. это то, что я на самом деле делаю:

<script type="text/javascript">
    flagprofile = <?php print 1 ?>;
    if(flagprofile == 1){ document.getElementById('theid').style.display = 'block';  } else { document.getElementById('theid2').style.display = 'block'; }
</script>
<div id="theid" style="display:none">This is div 1</div>
<div id="theid2" style="display:none">This is div 2</div>

Я ожидаю, что первый появится, но это не так. Что не так?

4b9b3361

Ответ 1

Измените стиль display на block вместо '':

document.getElementById('div1').style.display = 'block';

Обратите внимание, что вам нужно быть осторожным, чтобы восстановить исходное значение display. Если вы установите для элемента a значение display: block, оно будет сильно отличаться от ожидаемого. Вам нужно будет установить его на display: inline вместо этого, сделав очевидное изменение вышеприведенного кода.


Изменить, с вашим редактированием проблема становится ясной: элементы не существуют при запуске вашего Javascript. Подождите, пока все не загрузится до поиска элементов:

<script type="text/javascript">
window.onload = function() {
    var flagprofile = <?php print 1 ?>;
    if(flagprofile == 1){
        document.getElementById('theid').style.display = 'block';
    } else {
        document.getElementById('theid2').style.display = 'block';
    }
};
</script>

Ответ 2

Вы установили display в пустую строку, которая является недопустимой css, вместо этого попробуйте среди других:

document.getElementById('div1').style.display = 'block';

или

document.getElementById('div1').style.display = 'inline-block';

Ответ 3

Это рабочий пример: Надеюсь, поможет! Майкл, Южная Африка

    function CountryChange() {
    	
    	if (document.getElementById("statebox").style.display == "block") 
    	{
    		document.getElementById('statebox').style.display = 'none';
    		document.getElementById('statebox').style.visibility = 'none';
    	}
    	else 
    	{
    		document.getElementById('statebox').style.display = 'block';
    		document.getElementById('statebox').style.visibility = 'visible';
    	}
        
    }
    <!-- BOX to switch on/off -->
    <div class="control-group" id="statebox" name="statebox" style="display: none">
         <label class="control-label">Bla Bla Bla...</label>
    </div>


    <!-- Pic to click -->

    <img onclick="javascript:CountryChange()" src="https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_284x96dp.png" name="picpincountry"/>

Ответ 4

Вы можете сделать:

document.getElementById('div1').style.display = 'block'

Ответ 5

Работает для меня... вы уверены, что в вашей таблице стилей нет ничего?

http://jsfiddle.net/minitech/YL8tq/

(Прокомментируйте JavaScript для тестирования без)

Ответ 6

Можете ли вы проверить, что flagprofile установлен в 1? Попробуйте сделать alert(flagprofile); и посмотреть, действительно ли это установлено. Если нет, вы можете попробовать var flagprofile = 1;.

Ответ 7

var uname=document.getElementById("urname").value;
    var passwrd=document.getElementById("passwd").value;

    if(uname=="john" && passwrd=="123"){

        document.getElementById("form2").style.display='none';

        document.getElementById("form1").style.display='block';

    }
    else{
        alert("Wrong username and pass");
    }

}

Ответ 8

По какой-то причине мне пришлось сделать следующее: чтобы получить эту работу.

document.getElementById('theid').style.display = 'block';

document.getElementById('theid').style.visibility = 'visible';

После того, как я установил первый, он все еще был скрыт для меня. Как только я осмотрел DOM в F12, я заметил, что несмотря на display: block, visibility по-прежнему установлен на hidden.

Я также должен отметить, что я использую jQuery/jQueryUI для тех же элементов.

Надеюсь, это поможет кому-то.