2011-08-02 68 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'。你也應該檢查一下。 –