這個問題不是CSS的問題,而是一個純javascript的問題。
如果大家使用的是JQuery,有$這個符号,可以看看下面這些文字,如果沒有,直接跳過即可。
這是看一個大佬的部落格,學習到的,這裡附上連結:
https://www.cnblogs.com/Renyi-Fan/p/9013126.html
在 prototype 和DWR 的JS 類庫裡也有這個符号,
在這兩個類庫裡的這個符号是代表 document.getElementById()這個函數。
為了達到document.getElementById() 這個函數的效果,JQuery 也試用了 $() 這個符号。
也就是說:
$("#myId")就是原生JS裡面的document.getElementById(“myId”)
類似這樣子的改變,還有以下常見方式:
$("div p"); // (1)
$("div.container"); // (2)
$("div #msg"); // (3)
$("table a",context); // (4)
- 第一行代碼得到所有标簽下的P元素。
- 第二行代碼得到class 為container的元素。
- 第三行代碼得到标簽下面id為msg的元素。
-
第四行代碼得到context為上下文的table裡面所有的連接配接元素。
jquery就是通過這樣的方式來找到Dom對象裡面的元素。跟CSS的選擇器相類似
下來看看這個問題:
Uncaught TypeError: Cannot set property ‘display’ of undefined

首先,css寫得沒錯,問題出在Javascript當中的 getElementsByClassName(“xxx”),
這個方法得到的是一個由class="xxx"的所有元素組成的集合,而不是單個元素;
集合是沒有display屬性的,集合中的元素才有display屬性。當你試圖做 集合.style.display的時候,自然會報錯。
是以你這個問題的解決方案應該是:周遊集合中所有的元素,然後給每個元素都加上display="none"的屬性。示例代碼如下:
var divset=document.getElementsByClassName("el-upload-list");
for (var i = 0; i<divset.length;i++) {
divset[i].style.display="block";
};
修改之後成功。
END
good lunck to you