2015-07-07 4 views
0

I'm все еще пытается работать с JavaScript и я получил проблему:Найти часть идентификатора с помощью getElementsByTagName («*»)/Wildcard

я получил простой HTML-сайт для практики и на этом сайте есть <p id="main_paragraph_two">... und Viel Erfolg!</p> , а также: <p id="sub_paragraph_two">... und Viel Erfolg!</p>

задача: изменить текст ... унд Viel Erfolg в ... унд Vielen Данк!

Мой коллега сказал мне использовать getElementsByTagName и использовать Wildcard ('*').

Теперь мои вопросы: как я могу изменить оба p-тега на текст, показанный выше? * PLS примечание! только javascript! также не используя querySelectorAll (я знаю, что это работает так ^^).

здесь является JS я сделал до сих пор:

function textchange() 
     { 
      var change = document.getElementsByTagName('*'); 
      for (var i = 0; i < change.length; i++) 
      { 
       if (document.getgetElementsByName('paragraph_two')) 
       { 
        change[i].innerHTML = '...und Vielen Dank!'; 
       } 
      } 
     } 

Спасибо!

+1

Почему вы не хотите использовать querySelectorAll? –

+1

Если вы знаете, что они являются элементами P, почему бы не 'getElementsByTagName ('p')' уменьшить размер коллекции, которую вы повторяете? – RobG

+0

Ругаться со своим коллегой!^ – Pogrindis

ответ

1

Использование getElementsByTagName относительно медленное. Почему бы вам просто не добавить идентификаторы абзацев к массиву, не зациклиться на массиве, а затем обновить содержимое.

Например:

function textChange(elems, replace) 
{ 
    for(var i = 0; i < elems.length; i++) 
    { 
     document.getElementById(elems[i]).innerHTML = replace; 
    } 
} 

Теперь вы можете вызвать функцию следующим образом, где elems представляет собой массив идентификаторов и replace является строка, которая будет использоваться для замены:

textChange(['main_paragraph_two', 'sub_paragraph_two'], '...und Vielen Dank!'); 

jsFiddle Demo

+0

спасибо за вашу помощь, но с использованием шаблона ('p') работает, но я не должен его использовать. я должен узнать, как я могу изменить текст с идентификатором, заканчивающимся на _paragraph_two withour с использованием jQuery или Queryselector, только с подстановочным знаком * –