2016-12-28 95 views
-3

我使用引導程序,並且我需要設置樣式的元素位於bootsrap col-sm-6 div元素內。我不知道爲什麼,但我的腳本不工作。JS不會在另一個div中設置樣式邊距

<div class="row"> 
<div class="col-sm-6 spacer1"> 
//Objects 
</div> 
</div> 
<script type="text/javascript"> 
document.getElementByClassName('spacer1').style.padding = "50px 50px"; 
</script> 

我的腳本放在我的元素下面,所以我認爲它在加載這個元素後被執行。我嘗試了一切,但我無法得到這個工作。 是的,我可以只寫這個到CSS文件,但我需要爲每個div動態地改變它。這裏有什麼問題?

編輯 如果這個返回nodelist,如何選擇它?我不知道這事...

非常感謝你,我有固定的一切:)

+0

您在函數名稱中缺少's'。 '.getElementsByClassName()'返回一個節點列表。首先從該列表中選擇一個節點,然後在其上應用樣式屬性。 –

+0

OP使用'getElementByClassName'(單數),它根本不存在,並且應該拋出一個錯誤,這可以在瀏覽器的控制檯中看到。那麼,@超級解碼器,你是否得到了這個錯誤?你確實需要在這裏使用正確的功能。如果需要(可能)定位多個節點,也許可以切換到'querySelector',它返回單個節點,或者'getElementsByClassName'或'querySelectorAll'。 – GolezTrol

+2

順便說一句,爲什麼你決定選擇JS而不是CSS添加樣式?我在這裏沒有看到任何事件處理程序。 –

回答

1

getElementsByClassName()返回元素的數組,所以你需要選擇的第一要素。

嘗試

document.getElementsByClassName('spacer1')[0].style.padding = "50px 50px"; 
+0

getElementByClassName根本不存在。 – GolezTrol

+0

的確,它的getElementsByClassName('spacer1')[0],它是一個複數,而不是一個單數。 –

0

document.getElementsByClassName('spacer1')[0].style.padding = "50px 50px";

getElementByClassName不存在。

您可以使用getElementsByClassName並選擇nodeList中的第一個元素。

閱讀全文here

相關問題