2016-09-30 7 views
0

자바 스크립트와 CSS에서 도움이 필요합니다. 나는 정상적으로 작동하는 스크립트를 가지고 있지만 위에 필터링 기능을 수행하면 CSS가 실행되지 않고 필터링 된 결과 만 HTML 페이지에 표시됩니다. 자바 스크립트를 수행하는 조언을 구합니다.자바 스크립트가 실행되지 않습니다. 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/ –

관련 문제