2016-07-22 10 views
0

DBからデータを取得し、同じdivに配置されたボタンのデータをリストし、onclickという新しいdivを最大値に達するまで作成するプログラムを作成しています。この例を他の人に役立てるために、DBからデータを取得するのではなく、いくつかの一般的な数値を使用しました(値5は変数levmaxに割り当てられ、forループごとにいくつかの値が割り当てられます)。 DB)。複数のDIVが隣り合っています

私が持っている問題は、どのようにすべてのDIVをお互いに並べるかということです。私がここで見つけたすべての例は、コードのHTML部分で作成されている場合にどのように配置するのかを説明しています。しかし、私はJSの部分で私のDIVを作成したい。

すべてのDIVが互いに隣り合っている部分を除いて、コードは正常に動作します。コードには80行のようなものがありますが、必要なのはDIVの整列方法だけです。コードは次のとおりです。

<html> 
<head> 
<script> 
var lev = 0; 
var levmax=5; 
var count = 0; 
function addBu(){ 
     lev++; 
     var bo = document.getElementById("kod"); 
     var di = document.createElement('DIV'); 
     for (var i=0; i<3; i++){ 
      var bu= document.createElement('BUTTON'); 
      var te = document.createTextNode('Text'); 
      if(lev===1){ 
      bu.addEventListener("click", novo); 
      } 
      var te1 = document.createTextNode(lev.toString()); 
      var br = document.createElement('BR'); 
      bu.id=lev.toString(); 
      bu.appendChild(te); 
      bu.appendChild(te1); 
      di.appendChild(bu); 
      di.appendChild(br); 
      count++; 
     } 

     bo.insertBefore(di, bo.childNodes[0]); 
}; 

function novo(){ 
    if(lev===1){ 
     lev++; 
     var bo = document.getElementById("kod"); 
     var di = document.createElement('DIV'); 
     for (var i=0; i<4; i++){ 
      var bu= document.createElement('BUTTON'); 
      var te = document.createTextNode('Text'); 
      var te1 = document.createTextNode(lev.toString()); 
      var br = document.createElement('BR'); 
      bu.addEventListener("click", repeat); 
      bu.id=lev.toString(); 
      bu.appendChild(te); 
      bu.appendChild(te1); 
      di.appendChild(bu); 
      di.appendChild(br); 
      count++; 
     } 

     bo.insertBefore(di, bo.childNodes[0]); 
    } 
    function repeat(){ 
     if(lev<levmax){ 
      lev++;  
      var bo = document.getElementById("kod"); 
      var di = document.createElement('DIV'); 
      for (var i=0; i<2; i++){ 
       var bu= document.createElement('BUTTON'); 
       var te = document.createTextNode('Text'); 
       var te1 = document.createTextNode(lev.toString()); 
       var br = document.createElement('BR'); 
       bu.addEventListener("click", repeat); 
       bu.id=lev.toString(); 
       bu.appendChild(te); 
       bu.appendChild(te1); 
       di.appendChild(bu); 
       di.appendChild(br); 
       count++; 
      } 
      bo.insertBefore(di, bo.childNodes[0]); 
      var le=(lev-1).toString(); 
      document.getElementById(le).removeEventListener("click", repeat); 
     } 
    } 

} 
</script> 
</head> 
<body id="kod" onload="addBu()"> 
</body> 
</html>enter code here 

<head> 
<script> 
var lev = 0; 
var levmax=5; 
var count = 0; 
function addBu(){ 
     lev++; 
     var bo = document.getElementById("kod"); 
     var di = document.createElement('DIV'); 
     for (var i=0; i<3; i++){ 
      var bu= document.createElement('BUTTON'); 
      var te = document.createTextNode('Text'); 
      if(lev===1){ 
      bu.addEventListener("click", novo); 
      } 
      var te1 = document.createTextNode(lev.toString()); 
      var br = document.createElement('BR'); 
      bu.id=lev.toString(); 
      bu.appendChild(te); 
      bu.appendChild(te1); 
      di.appendChild(bu); 
      di.appendChild(br); 
      count++; 
     } 

     bo.insertBefore(di, bo.childNodes[0]); 
}; 

function novo(){ 
    if(lev===1){ 
     lev++; 
     var bo = document.getElementById("kod"); 
     var di = document.createElement('DIV'); 
     for (var i=0; i<4; i++){ 
      var bu= document.createElement('BUTTON'); 
      var te = document.createTextNode('Text'); 
      var te1 = document.createTextNode(lev.toString()); 
      var br = document.createElement('BR'); 
      bu.addEventListener("click", repeat); 
      bu.id=lev.toString(); 
      bu.appendChild(te); 
      bu.appendChild(te1); 
      di.appendChild(bu); 
      di.appendChild(br); 
      count++; 
     } 

     bo.insertBefore(di, bo.childNodes[0]); 
    } 
    function repeat(){ 
     if(lev<levmax){ 
      lev++;  
      var bo = document.getElementById("kod"); 
      var di = document.createElement('DIV'); 
      for (var i=0; i<2; i++){ 
       var bu= document.createElement('BUTTON'); 
       var te = document.createTextNode('Text'); 
       var te1 = document.createTextNode(lev.toString()); 
       var br = document.createElement('BR'); 
       bu.addEventListener("click", repeat); 
       bu.id=lev.toString(); 
       bu.appendChild(te); 
       bu.appendChild(te1); 
       di.appendChild(bu); 
       di.appendChild(br); 
       count++; 
      } 
      bo.insertBefore(di, bo.childNodes[0]); 
      var le=(lev-1).toString(); 
      document.getElementById(le).removeEventListener("click", repeat); 
     } 
    } 

} 
</script> 
</head> 
<body id="kod" onload="addBu()"> 
</body> 
</html> 

答えて

2

CSSの使用!

.item { 
    width: 300px; 
    padding: 20px; 
    float: left; 
} 

クラス名itemサイド・バイ・サイドですべて<div>年代を合わせます:の各項目のHTMLコンポーネントの含む<div>は、クラス名.itemを持っているとしましょう。

実際にこれを行う方法はたくさんあります。

<head> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 
</head> 
<body> 
    <div class="container"> 
     <div class="row"> 
      <div class="db-item col-md-4"> 

      </div> 
      <div class="db-item col-md-4"> 

      </div> 
      <div class="db-item col-md-4"> 

      </div> 
     </div> 
    </div> 
</body> 

をしてから使用すると、1つをいつでも新しい</div><div class="row">を挿入するために、あなたのJavsScriptのスキルを使用します。ここでは例として使用してブートストラップがあります。この場合、3つのアイテムごとに理想的です。

1

フレックスボックスはここで使用できます。

/*The container div*/ 
.flex_container { 
    display: flex; /* This will make the div as flexible container*/ 
    flex-flow: row wrap; // the shortcut for flex-direction: row/column; and flex-wrap:wrap; 
    /* Other styles ...*/ 
} 
/*for generated divs*/ 
.flex_item { 
    /*your styles*/ 
} 

あなたはhttps://css-tricks.com/snippets/css/a-guide-to-flexbox/

でフレックスボックスについての詳細を学ぶことができます