[JS] Неправильная работа функции

Тема в разделе "Другие языки", создана пользователем Fak1r, 9 авг 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    Есть функция которая получает значение атрибута title в теге img и заменяет этим содержимым текст в теге span. Функция работает, но не совсем правильно, происходит замена не текста в теге span, а самого тега.

    Функция:
    Код:
    function RenamePlanets(){
      var divR = document.getElementById("planets");
      var spanR = divR.getElementsByTagName("span");
      for(p=0; p< spanR.length; p++){
        spanR[p].outerText = spanR[p].all.item(0).getAttribute("title");
      }
    }
    
    Код страницы:
    Код:
    <div id="planets">
    <ul>
    	 <li class="cur-planet">
    		<span class="goto" rel="23"><img src="01.jpg" title="q" alt="q" width="60" height="60" class="image" /><br />name</span>
    	</li>  <li>
    		<span class="goto" rel="210"><img src="06.jpg" title="a" alt="a" width="60" height="60" class="image" /><br />name</span>
    	</li>  <li>
    		<span class="goto" rel="244"><img src="01.jpg" title="s" alt="s" width="60" height="60" class="image" /><br /name</span>
    	</li>
    </ul>
    </div>
    
     
  2. funest

    funest Постоялец

    Регистр.:
    2 июл 2007
    Сообщения:
    145
    Симпатии:
    38
    вместо outerText - innerText, maybe )
     
  3. omfg

    omfg

    Регистр.:
    4 авг 2009
    Сообщения:
    159
    Симпатии:
    46
    еще можешь попробовать innerHTML
     
  4. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    Все пробывал, результат тот же
     
  5. omfg

    omfg

    Регистр.:
    4 авг 2009
    Сообщения:
    159
    Симпатии:
    46
    C innerHTML все прекрасно работает, только что проверил на твоем примере.
    У тебя вот эта ошибочка: "spanR[p].all is undefined"
     
  6. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    omfg
    Вот как раз и не работает так как нада.
    Мне нада чтобы функция брала "текст 1" и заменала им "текст 2"
    Код:
    <span class="goto" rel="244"><img src="01.jpg" title="[B]текст 1[/B]" alt="s" width="60" height="60" class="image" /><br />[B]текст 2[/B]</span>
    С outerText
    При выполнении функции первой и третьей строке тег span полностью заменяются текстом из title, а со вротой строкой вообще ни чего не происходить

    С innerText
    Заменяется весь текст.

    вот код страници, не фига не получается.
    Код:
    <html>
    <body>
    <script>
    function RenamePlanets(){
      var divR = document.getElementById("planets");
      var spanR = divR.getElementsByTagName("span");
      for(p=0; p< spanR.length; p++){
        spanR[p].outerText = "XXX";
      }
      alert(divR.innerHTML);
    }
    </script>
    
    <input type="button" name="TestInpThis" value="OK" onclick="RenamePlanets()">
    
    <div id="planets">
    <ul>
    	 <li class="cur-planet">
    		<span class="goto" rel="23"><img src="01.jpg" title="q" alt="q" width="60" height="60" class="image" /><br />name</span>
    	</li>  <li>
    		<span class="goto" rel="210"><img src="06.jpg" title="a" alt="a" width="60" height="60" class="image" /><br />name</span>
    	</li>  <li>
    		<span class="goto" rel="244"><img src="01.jpg" title="s" alt="s" width="60" height="60" class="image" /><br> /name</span>
    	</li>
    </ul>
    </div>
    
    </body>
    </html>
     
  7. funest

    funest Постоялец

    Регистр.:
    2 июл 2007
    Сообщения:
    145
    Симпатии:
    38
    Могу предложить как временное решение, убрать <br />, а текст обернуть в <p> & ByTagName('p').
    Странно, что вместе с текстом меняется и html, хотя alert выводит только текст.
     
Статус темы:
Закрыта.