2017-09-15 47 views
0

我創建了一個包含行和列的java腳本的表格,基本上是一個座位模板,但是當我嘗試使用document.getELementbyclassname來選擇html元素時,我得到了未定義的表格。我在j查詢中使用每個查詢$(document).ready(function),但我仍然未定義。現在無法選擇使用javascript作爲模板創建的html元素

function createTemplate(rows,cols){ 
    var rows = rows; 
    var col = cols; 


    for(var i = 0; i < rows; i++){ 
     $("#container").append("<div class = 'row rower'></div>"); 
    } 
    for(var y = 0; y < col; y++){ 
     $(".rower").append("<div class = 'col-xs-1 cols'> </div>"); 
    } 
    for(var z = 0; z < 1; z++){ 
     $(".cols").append("<button class = 'btn btn-danger proness'></button>"); 
    } 

    var buttons = document.getElementsByClassName("proness"); 
    for(var l = 0; l < buttons.length; l++){ 
     buttons[l].innerHTML = l; 
    } 


    var row = document.getElementsByClassName("rower"); 
    for(var x = 0; x < row.length;x++) 
    { 
     row[x].style.padding = "1px"; 
    } 

}; 

,我使用

var button = document.getElementByClassName("btn"); 
console.log(button[3]); // UNdefined 
+3

沒有這樣的函數'getElementByClassName'。該函數被稱爲'getElementsByClassName'。 – Dekel

+1

[Javascript:如何僅通過類名獲取一個元素?]的可能重複(https://stackoverflow.com/questions/21436550/javascript-how-to-get-only-one-element-by-class-name ) – MaxZoom

+1

嗨Vigoss冰箱,如果你包含了你正在使用的HTML和CSS,你的問題會更容易解決,這將受到你所寫的JavaScript代碼的影響。它確實有助於瞭解代碼如何相互關聯。有時,一種開發語言中的問題的答案與您從另一種開發語言中引用它的方式有關。 –

回答

0

由於您使用的jQuery已經後,您可以使用jQuery來處理的按鈕。

小提琴:https://jsfiddle.net/j6ju2cxs/

var buttons = $(".btn"); 
console.log($(buttons[3]).html()); 

如果從輸入行和列到你的函數導致細胞的數量小於3,尋找按鈕[3]將返回不確定的。

+0

我的意思是,我在生成模板時沒有問題,我在我的HTML視圖中查找模板,這意味着模板已生成。但是,在我使用函數create_template()之後;我嘗試使用document.getEllementsbyClassname(「proness」)獲取由模板生成的元素;但是我什麼也得不到,就像undefined。就像沒有這樣的HTML存在。 –

+0

我的答案返回問題中顯示的測試用例的html。我不知道還有什麼要補充的。 – Radio

+0

解決了這個問題,我做了什麼,我添加了一個2秒的settimeout函數,並解決了它,因爲當我檢查控制檯時,返回的按鈕數組是空的,但將timout設置爲2秒,它工作正常。 –