1. 程式人生 > >瞎分類之JS——js實現div大小設定及Cannot set property 'cssText' of undefined問題處理

瞎分類之JS——js實現div大小設定及Cannot set property 'cssText' of undefined問題處理

今天趁著奇怪的時間開始總結最近看到的,學習到的,一些問題。僅僅是解決了問題,以我現在淺薄瞭解,只負責解決問題,希望以後會自我欣賞的時候再看看,內容是否需要修改。萬一哪位有經驗的看到了,可以及時指點,在這裡先謝了。

js完成div的大小設定

背景是接手的程式碼用js生成各種div,現在需要將固定大小改為自適應。我這裡理解的自適應就是n%.

如圖:


原始碼:

 var timeSelect = document.createElement("div");   //主框
        timeSelect.id = "all";
        var divElement1 = "<button class='all' style='width: 50px;height: 50px;background-color: #007fff;color: #fff;border: none;font-size: 16px'>ALL</button>"
        $(timeSelect).append(divElement1);
        timeSelect.id = "timeSelect";
        var divElement = "<select name='year' class='year' onchange='timeSelect()' >aaaa</select>"+
            "<select name='month' class='month' onchange='timeSelect()'>aaaaaa</select>"+
            "<select name='day' class='day' onchange='timeSelect()'>aaaaaa</select> "
        $(timeSelect).append(divElement)

修改後:

var timeSelect = document.createElement("div");   //主框
        divset = $(timeSelect);
        for (var i = 0; i<divset.length;i++) {

            divset[i].style.cssText="width:40%; height:10%";
        };
        timeSelect.id = "all";
        var divElementOut = "<button class='buttonOut' style='margin-top: 0px; width: 13%;height:75%;background-color: #007fff;color: #fff;border: none;font-size: 80%;'>Export</button>";
        var divElement1 = "<button class='all' style='margin-top: 0px; margin-left: 1%; width: 10%;height: 75%;background-color: #007fff;color: #fff;border: none;font-size: 80%'>All</button>"
        $(timeSelect).append(divElementOut);
        $(timeSelect).append(divElement1);

        timeSelect.id = "timeSelect";
        var divElement = "<select name='year' class='year' style='margin-top: 0px; width: 20%;height: 75%;' onchange='timeSelect()' ></select>"+
            "<select name='month' class='month' style='margin-top: 0px; width: 20%;height: 75%;' onchange='timeSelect()'></select>"+
            "<select name='day' class='day' style='margin-top: 0px; width: 20%;height: 75%;' onchange='timeSelect()'></select> "
        $(timeSelect).append(divElement);

重點在:

報錯Cannot set property 'cssText' of undefined

時,因為 $(timeSelect),這個方法得到的是一個由id="timeSelect"的所有元素組成的集合,而不是單個元素;所以應該是:遍歷集合中所有的元素,然後給每個元素都加上相應操作即可。

        divset = $(timeSelect);
        for (var i = 0; i<divset.length;i++) {

            divset[i].style.cssText="width:40%; height:10%";
        };