2011-08-02 18 views
0

我需要将动态文本值分配给某些元素,然后可以将其放置在我正在处理的整个站点中,因为它需要稍后在某个点进行本地化。需要使用Javascript为菜单创建动态文本

我希望在JS创建它们的列表如下─一样

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

但我当然希望能够在整个有titletitle2的div的多个副本,不会因为getElementsById的工作结构体。有没有人有任何其他建议或解决方法?

回答

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> 
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"); 

希望这有助于以某种方式。欢呼声

+0

“document.getElementsByClassName”呢?这应该通过课堂获得元素。 –

+0

它只能由最新版本的Firefox,Safari,Opera和IE9本地支持。它不会在IE8或更低版本 – Calvin

+1

我看到。但是在重新定义函数之前,您应该首先检查本机版本。 编辑:它似乎像IE8支持'document.querySelector'和'document.querySelectorAll'。你也应该检查一下。 –