2017-09-15 8 views
0

基本的には行と列のJavaスクリプトを使用して表を作成しましたが、html要素を選択しようとするとdocument.getELementbyclassnameを使用すると定義されません。私はすべての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"; 
    } 

}; 

さて、あなたはすでにjqueryのを使用しているので、私は

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

このような関数 'getElementByClassName'はありません。関数は 'getElementsByClassName'と呼ばれます。 – Dekel

+1

[Javascript:クラス名で要素を1つだけ取得する方法](https://stackoverflow.com/questions/21436550/javascript-how-to-get-only-one-element-by-class-name) ) – MaxZoom

+1

ちょっとVigossの冷蔵庫、あなたの問題はあなたがあなたが書いたJavaScriptコードの影響を受ける使用しているHTMLとCSSを含む場合は、解決するのが少し簡単になります。コードがどう関係しているかを見るのは間違いありません。ある開発言語の問題に対する答えは、別の開発言語からどのように言及しているのかと結びついていることがあります。 –

答えて

0

使用した後、あなたはボタンに対処するためにjqueryのを使用することができます。

フィドル:https://jsfiddle.net/j6ju2cxs/

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

あなたの関数に行と列の入力に起因する細胞の数は、ボタンを探して、3未満の場合、[3]未定義戻ります。

+0

私は、テンプレートを生成する際に問題はありません。私はHTMLビューでテンプレートを見ています。つまり、テンプレートが生成されたことを意味します。しかし、私は関数create_template()を使用した後、私は、document.getEllementsbyClassname( "proness");を使用してテンプレートによって生成された要素を取得しようとするが、私は未定義のように何も得られない。そのようなhtmlは存在しません。 –

+0

私の答えは質問に表示されているテストケースのhtmlを返します。他に何を追加するかわからない。 – Radio

+0

問題を修正しました.2秒間settimeout関数を追加して解決しました。コンソールをチェックすると返されたボタン配列は空ですが、タイムアウトを2秒に設定していたのでうまくいきました。 –

関連する問題