Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение тегов с помощью JS
 
 автор: Владимир55   (03.12.2013 в 21:59)   письмо автору
 
 

В коде встречаются классы, стили и идентификаторы, котрыми задается шрифт. Но есть среди них случаи, когда строка текста имеет вид
<p>  TEXT </p>


Как сделать JS, чтобы все строки вида
<p>  TEXT </p>

в браузере превращались в
<p class="tema">  TEXT </p>

При этом другие способы задания шрифта меняться не должны.

Попробовал так, но не заработало:
<!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Варианты верстки</title>

<style>
.tema {font-size:24px; color:#06F; }
.tema_dva {font-size:50px; }
#try {color:#F36;}
</style>

    <script>    
         var ps = document.getElementsByTagName("p")
        for(var i = 0; i < ps.length; i++)
          if(ps[i].getAttribute("class") == "")
        ps[i].setAttribute("class","tema");  
    </script>



</head>

<body>
    <p>Класс подставлется скриптом 1</p>
    <p>Класс подставлется скриптом 2</p>
    <p>Класс подставлется скриптом 3</p>

    <p class="tema">Класс прописан в строке (для сравнения)</p>
    <p class="tema_dva">Класс не подлежит замене</p>
    <p id="try">КLАСС задан идентификатором</p>
    <p style="color:#6F0">Стиль задан в тексте</p>

</body>

  Ответить  
 
 автор: btr   (03.12.2013 в 23:17)   письмо автору
 
   для: Владимир55   (03.12.2013 в 21:59)
 

Во первых - ошибки.
надо так:
 var ps = document.getElementsByTagName("p") ;
        for(var i = 0; i < ps.length; i++)
        {
          if(ps[i].getAttribute("class") == null
          
          ps[i].setAttribute("class","tema"); 
           
          
          
        }


во вторых - скрипт срабатывает до загрузки документа

надо его оформить функцией и повесить на событие onload тега body например


 <script>    
    function B_onLoad() 
    {
         var ps = document.getElementsByTagName("p");
        for(var i = 0; i < ps.length; i++)
        {
          if(ps[i].getAttribute("class") == null) 
          
          ps[i].setAttribute("class","tema"); 
           
          
          
        }
    }
    </script>



</head>

<body onload = "B_onLoad();">

  Ответить  
 
 автор: kosta_in_net   (04.12.2013 в 22:17)   письмо автору
 
   для: btr   (03.12.2013 в 23:17)
 

можно не оформлять функцией, запуская по онлоад, а просто поместить в конец страницы

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования