Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вложить тег в тег (https://javascript.ru/forum/misc/39977-kak-vlozhit-teg-v-teg.html)

proweb 19.07.2013 17:59

Как вложить тег в тег
 
Здравствуйте есть задача вложить в заголовок дополнительный тег к примеру
<h1>Новый <span>блог</span></h1>

Заголовок как известно в многих cms выводится в переменной.
помогите пожалуйста ...
как реализовать что бы часть заголовка попадала в тег к примеру span

ОлегА 22.07.2013 08:22

как вариант
onload = function(){
    document.getElementsbyTagName('h1').appendChild('<span>блог</span>')
}

рони 22.07.2013 09:52

Цитата:

Сообщение от ОлегА
onload = function(){ document.getElementsbyTagName('h1').appendChild('< span>блог</span>')}

нерабочий код

skrudjmakdak 22.07.2013 10:00

Цитата:

Сообщение от рони (Сообщение 263509)
нерабочий код

абсолютно согласен!
вот:
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
	<input type="button" value="кликай меня полностью!" onclick="buttonClick();">
    <span></span>
    <script type="text/javascript">
    function buttonClick()
      {
	  var span = document.createElement('span');
	  span.innerHTML = 'блог';
      document.getElementsByTagName('span')[0].appendChild(span);
      }
    </script>

  </body>
</html>

рони 22.07.2013 10:14

Цитата:

Сообщение от ОлегА
<span>блог</span>

это невставится с помощью appendChild

рони 22.07.2013 10:16

Цитата:

Сообщение от proweb
как реализовать что бы часть заголовка попадала в тег к примеру span

Вариант решения для заголовков из 2 слов
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 span{
     color: red;
 }
  </style>
  <script>
    window.onload = function(){
   var h = document.getElementsByTagName('h1')
   for (var i=0; i<h.length; i++)  {
      var node = h[i].firstChild
      var text = h[i].firstChild.data.split(' ');
      node.data = text[0]+' ';
      var span = document.createElement('span');
      span.appendChild(document.createTextNode(text[1]))
      h[i].appendChild(span)
   }

}

  </script>
</head>
<body>
<h1>Новый блок</h1>
<h1>Новый блок</h1>
</body>
</html>

ОлегА 22.07.2013 10:17

поспешил, еще 1 вариант
onload = function(){
    document.getElementsByTagName('h1')[0].innerHTML += '<span>блог</span>';    
}

ruslan_mart 22.07.2013 13:32

(function() {
   var a = document.getElementsByTagName('h1')[0];
   var b = document.createElement('span');
   b.innerHTML = 'блог';
   a.appendChild(b);
})();


Или:
document.getElementsByTagName('h1')[0].appendChild(function()
{
   var a = document.createElement('span');
   a.innerHTML = 'блог';
   return a;
}());


Часовой пояс GMT +3, время: 00:33.