2016-09-30 14 views
0

JavascriptとCSSでいくつかの助けが必要です。私はうまく動作しているスクリプトがありますが、上にフィルタリング機能を実行すると、CSSは実行されず、フィルタリングされた結果だけがHTMLページに表示されます。 javascriptを実行する際の助言を求める。javascriptが実行されないCSS

<script> 
     var createTable = function(){ 
     var street = document.getElementById("search-street").value; 
     var suburb = document.getElementById("search-suburb").value; 
     var pc = document.getElementById("search-pc").value; 
     var type = document.getElementById("search-type").value; 
     var counter=0; 
     if (street == '' && suburb == '' && pc == '' && type == '') { 
     for(i=0;i<myArray.length;i++){ 
      var id = myArray[i][4]; 
      if(counter%3==0){ 
      document.write("<div class='row'>"); 
      } 
      document.write("<div class='col-sm-6 col-md-4'>"); 
      document.write("<div class='thumbnail'>"); 
      document.write("<div class='caption'>"); 
      document.write("<p>" + myArray[i][3] + "</p>"); 
      document.write("<p><a href='edit_property.php?id="+id+"' class='btn btn-default' role='button'>Edit</a> <a href='#delete_property.php?id="+id+"' class='btn btn-danger' role='button'>Delete</a></p>"); 
      document.write("</div>"); 
      document.write("</div>"); 
      document.write("</div>"); 
      counter++; 
      if(counter%3==0){ 
      document.write("</div>"); 
      } 
     } 
     } else { 
     for(i=0;i<myArray.length;i++){ 
      var id = myArray[i][4]; 
      if(counter%3==0){ 
      document.write("<div class='row'>"); 
      } 
      if(street==myArray[i][0] || suburb==myArray[i][1] || pc==myArray[i][2] || type==myArray[i][3]){ 
      document.write("<div class='col-sm-6 col-md-4'>"); 
      document.write("<div class='thumbnail'>"); 
      document.write("<div class='caption'>"); 
      document.write("<p>" + myArray[i][3] + "</p>"); 
      document.write("<p><a href='edit_property.php?id="+id+"' class='btn btn-default' role='button'>Edit</a> <a href='#delete_property.php?id="+id+"' class='btn btn-danger' role='button'>Delete</a></p>"); 
      document.write("</div>"); 
      document.write("</div>"); 
      document.write("</div>"); 
      counter++; 
      } 
      if(counter%3==0){ 
      document.write("</div>"); 
      } 
     } 
     } 
    } 
    createTable(); 
    </script> 
+0

CSSは次のとおりです。

はこのバイオリンを試してみてください

? 「CSSは実行されません」という意味はどうですか? – nnnnnn

+0

私は、1990年代の 'document.write'よりももっと現代的なテクニックを使うことを考えました - あなたはあなたの' CSSが動かない 'と言っていました - あなたはCSSを投稿していません –

答えて

0

document.writeを使用しないで、変数を使用して要素内のコンテンツを置換または追加します。 https://jsfiddle.net/cq14qot3/

var myArray = [["1", "2", "3", "4", "5"],["6", "7", "8", "9", "10"]]; 
    var createTable = function() { 
     var street = document.getElementById("search-street").value; 
     var suburb = document.getElementById("search-suburb").value; 
     var pc = document.getElementById("search-pc").value; 
     var type = document.getElementById("search-type").value; 
     var counter = 0; 
     var outputHTML = ''; 
     if (street == '' && suburb == '' && pc == '' && type == '') { 
      for (i = 0; i < myArray.length; i++) { 
       var id = myArray[i][4]; 
       if (counter % 3 == 0) { 
        outputHTML += ("<div class='row'>"); 
       } 
       outputHTML += ("<div class='col-sm-6 col-md-4'>"); 
       outputHTML += ("<div class='thumbnail'>"); 
       outputHTML += ("<div class='caption'>"); 
       outputHTML += ("<p>" + myArray[i][3] + "</p>"); 
       outputHTML += ("<p><a href='edit_property.php?id=" + id + "' class='btn btn-default' role='button'>Edit</a> <a href='#delete_property.php?id=" + id + "' class='btn btn-danger' role='button'>Delete</a></p>"); 
       outputHTML += ("</div>"); 
       outputHTML += ("</div>"); 
       outputHTML += ("</div>"); 
       counter++; 
       if (counter % 3 == 0) { 
        outputHTML += ("</div>"); 
       } 
      } 
     } else { 
      for (i = 0; i < myArray.length; i++) { 
       var id = myArray[i][4]; 
       if (counter % 3 == 0) { 
        outputHTML += ("<div class='row'>"); 
       } 
       if (street == myArray[i][0] || suburb == myArray[i][1] || pc == myArray[i][2] || type == myArray[i][3]) { 
        outputHTML += ("<div class='col-sm-6 col-md-4'>"); 
        outputHTML += ("<div class='thumbnail'>"); 
        outputHTML += ("<div class='caption'>"); 
        outputHTML += ("<p>" + myArray[i][3] + "</p>"); 
        outputHTML += ("<p><a href='edit_property.php?id=" + id + "' class='btn btn-default' role='button'>Edit</a> <a href='#delete_property.php?id=" + id + "' class='btn btn-danger' role='button'>Delete</a></p>"); 
        outputHTML += ("</div>"); 
        outputHTML += ("</div>"); 
        outputHTML += ("</div>"); 
        counter++; 
       } 
       if (counter % 3 == 0) { 
        outputHTML += ("</div>"); 
       } 
      } 
     } 
     document.body.innerHTML = outputHTML; 
     alert(outputHTML); 
    } 
    createTable(); 
+0

盲目的に 'document.body.innerHTML' OPが期待していた正確な結果を生み出す:p –

+0

しかし、それは "document.write" xD –

+0

に十分に近い。CSSを追加すると、それは常に「残っている」ので、ここでフィドルを更新する:https://jsfiddle.net/9ov8cLkb/ –

関連する問題