需要使用Javascript为菜单创建动态文本

时间:2011-08-02 02:12:50

标签: javascript jquery dynamic menu getelementbyid

我需要将动态文本值分配给某些元素,这些元素然后可以放在我正在处理的网站中,因为它需要稍后在某个时候进行本地化。

我希望在JS中创建一个列表 - 如下所示 -

document.getElementsById('title').innerHTML="Title1 Text";
document.getElementsById('title2').innerHTML="Title2 Text";

但是我当然想要拥有titletitle2 div的多个副本,这些副本因getElementsById结构而无效。有没有人有任何其他建议或解决方法?

2 个答案:

答案 0 :(得分:1)

您可以随时使用类而不是ID,例如

<p class="introText">Title1 Text</p>
<p class="closingText">Title2 Text</p>

而不是只影响其中一个,你可以影响所有这些,如果你想只针对一个,你可以为那个添加一个ID。

<p class="introText" id="topIntro">Title1 Text</p>
<p class="closingText">Title2 Text</p>
<p class="introText">Title1 Text (again)</p>

答案 1 :(得分:0)

你想要使用类而不是id。但JavaScript默认没有getElementsByClass()函数,所以除非你想使用类似JQuery的东西,否则你必须自己定义函数。

document.getElementsByClass = function(class){
   var itemsfound = new Array;
   var elements = document.getElementsByTagName('*');
   for(var i=0;i<elements.length;i++){
      if(elements[i].className == class){
         itemsfound.push(elements[i]);
      }
   }
   return itemsfound;
}

这将返回具有指定类的元素数组。然后你可以根据需要使用以下代码。

document.getElementsByClass('class'); // gives an array of elements of given class
document.getElementsByClass('class')[0]; // selects first element in array with given class

但是如果你要使用JQuery,那就像这样简单:

$('.title').html("Title 1 Text");
$('.title2').html("Title 2 Text");

希望这在某种程度上有所帮助。欢呼声