2015-07-01 48 views
0

我一直在開發網站一段時間,但我現在纔開始處理JavaScript,主要是因爲我似乎被它嚇壞了。Javascript - 按類別選擇元素,遍歷DOM和分配類

但是我已經做了幾門課,買了幾本書,現在我有自己想寫的東西。除了它不工作,我無法弄清楚。

我的HTML img元素有一類aligncenter,幷包裝在<p>標記中。我想獲取呈現頁面上的元素,遍歷父代<p>標記,併爲該標記指定一個類,以便集中對齊圖像。

那麼我在這裏做錯了什麼?

document.addEventListener('DOMContentLoaded',function(){ 
 

 
\t // select the image 
 
\t var image = function() { 
 
\t \t document.getElementsByClassName('aligncenter'); 
 
\t } 
 

 
\t //traverse to parent p tag 
 

 
\t var parent = function() { 
 
\t \t image.elementParentNode; 
 
\t } 
 
\t // align parent p tag to center 
 

 
\t function assignClass() = { 
 
\t \t parent.classname += "imageCenter"; 
 
\t } 
 
})

謝謝!

+0

你爲什麼使用函數?你爲什麼做錯了? –

回答

0

您正在使用功能錯誤。而且,你的情況下不需要功能。

你可以簡單地做:

document.addEventListener('DOMContentLoaded',function() 
{  
    var elems = document.getElementsByClassName("aligncenter"); 
    for (var i = 0; i < elems.length; i++) 
     elems.item(i).parentNode.classList.add('aligncenter'); 
}); 

然而,在文檔加載分配這些值是在邏輯和CSS結構方面奇怪。

+0

優秀的Yeldar,工作。但請你能幫我理解我以什麼方式使用功能錯誤?謝謝。 – endymion1818

+0

@ endymion1818你的函數不返回值。而且,函數應該這樣調用:'image()','parent()'。 –

0

您可以使用jQuery的addClass函數來做到這一點

「element_id」 .addClass( 「類名」);

+0

非常感謝Manoj,但是我需要按類名選擇元素。另外,我想直接使用JavaScript來理解底層語言,然後才能使用快捷方式。再次感謝您的貢獻。 – endymion1818