2014-10-11 6 views
0

Я новичок в Javascript и уже знаю, как сменить его в HTML. Но теперь я хочу изменить полный контент div.Изменить полный контент DIV с помощью Javascript

У меня есть div с 2 кнопками, одна из которых называется «Войти». Что я хочу:

Когда посетитель нажимает «Войти», div показывает «другое содержимое», где вы можете войти в систему.

Как я могу это сделать?

Edit:

ДИВ Содержание:

 <div id="vote" align="center"> 
     <span style="font-size: 30px">Voten</span><br /><br /> 
     <?php 
      if(isset($_SESSION['username']) && isset($_SESSION['password'])) { 
     ?> 

     <?php 
      } else { 
     ?> 
      <script type="text/javascript"> 
       function login() { 
        Change div content.... 
       } 

       function register() { 
        alert('coming soon, lol'); 
       } 
      </script> 
      You must be logged in, to vote.<br /> 
      <input type="button" class="button" name="login" id="login" value="Login" onclick="login()" /><br /><br /> 
      Not a member yet?<br /> 
      <input type="button" class="button" name="login" id="register" value="Register now!" onclick="register()" /> 
     <?php 
      } 
     ?> 

снова: Что я хочу, если посетитель нажимает кнопку Войти, содержание DIV изменится на другой HTML-кода.

+0

Покажите код, что вы пробовали. – vusan

+1

Можете ли вы уточнить? С какой частью у вас проблемы? Выполнение действия при нажатии кнопки? Сокрытие контента? Сделать скрытый контент видимым? – gilly3

+0

Отредактировано нить. – Aarivex

ответ

3

С чистого JavaScript, у вас есть две возможности:

  1. Используйте свойство innerHTML на объект сНу, который будет анализировать вам и создать вы DOM узлы
  2. Создать сами эти DOM узлов. Wikipedia Link for DOM

Использование innerHTML:

Это будет использовать HTML-парсер браузера.

// You first have to select this DIV, for example by Id 
var divContainer = document.getElementById('idOfDiv'); 

// Let's set the new HTML content of the div 
divContainer.innerHTML = '<b>The HTML code you want !</b>'; 

Создание DOM узлов:

var divContainer = document.getElementById('idOfDiv'); 

// You need to create the DOM nodes you want want to append 
var newDomNode = document.createElement('p'); // Put as property the tag you want to create 

// You have multiple choices here, you can set again the newDomNode innerHTML : 
newDomNode.innerHTML = '<b>Some HTML</b>'; 

// Or the innerText : (This will just put text) 
newDomNode.innerText = 'Some Text to say Hello!'; 

Затем необходимо добавить созданную newDomNode к желаемому DIV, это будет вставить узел в качестве последнего дочернего контейнера:

divContainer.appendChild(); 

Вы можете добавить эти узлы рекурсивно. Например, вы можете добавить другой узел DOM в newDomNode. Вы также можете использовать divContainer.insertBefore()(link), чтобы иметь возможность разместить узел, где хотите.

Это чистый JavaScript, это хороший способ понять, как работает JavaScript. Понимание DOM очень важно, прежде чем перейти к jQuery. Но в реальной жизни для этого будет проще использовать библиотеку jQuery.

+0

Спасибо. но нет других возможностей? – Aarivex

+0

Мой ответ больше, чтобы рассказать вам о том, что вам нужно знать, когда вы новичок в JS, и вы хотите изучить его до того, как перейти в jQuery. Но jQuery будет лучше делать вещи простым способом. – kube

+0

Хорошо, еще раз спасибо. Но как я могу добавить больше кодов HTML? – Aarivex

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