2016-09-30 71 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

我会考虑使用比20世纪90年代的'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/ –