2015-04-17 86 views
0

我無法讓我的「目標」div被隱藏。當我更改div以隱藏到「div1」時,它可以工作,但這不是我想要的。任何人都可以看到爲什麼我不能隱藏「目標」div?JavaScript和隱藏div不工作

<html> 
<head> 
    <title>My sample</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

    <script type="text/javascript" language="javascript"> 


    $(document).ready(function() { 
     $("#hide").click(function(event){ 
      var ele = document.getElementById("target"); 
      ele.style.display = "none";      
     }); 
    });         

    //myItems.length 
    $(document).ready(function() { 
     $("#driver").click(function(event){ 
      $.getJSON('http://www.example.com/JSONV5.php', function(jd) { 
      var myItems = jd["items"]; 
       for (i = 0; i < 1; i++) { 
       $('#div1').append('<div id="target">'); 
       $('#div1').append('<p> Title: ' + jd["items"][i]["title"] + '</p>'); 
       $('#div1').append('<p> Description: ' + jd["items"][i]["description"] + '</p>'); 
       $('#div1').append('<p><img alt="" src=/uploads/' + jd["items"][i]["image1"] + '></p>'); 
       $('#div1').append('</div>');      
       }; 
      }); 
     }); 
    }); 
    </script> 

    </head> 
    <body> 
    <p>Click on the button to load result.html file:</p> 
    <div id="div1" style="background-color:#cc0;"> 
     DIV 1 
    </div> 

    <input type="button" id="driver" value="Load Data" /> 
    <input type="button" id="hide" value="Hide Data" /> 
    </body> 
</html> 
+0

首先,您要在循環中添加ID爲target的元素,並且ID是唯一的。其次,你不能通過'append()'調用拆分元素,你必須插入「整個」元素,現在你***隱藏了ID爲target的第一個元素,但是這個元素有沒有孩子。 – adeneo

+0

右鍵點擊,檢查DOM中的元素,你會得到答案! –

+0

這是一個jQuery的問題。 – bruh

回答

3

你不能像使用字符串那樣使用append。它不是像你想象的那樣構建html。它添加了多個彼此同胞的元素。其次,你不能有多個具有相同ID的物品。

$('#div1').append(
    '<div id="target">' + 
    '<p> Title: ' + jd["items"][i]["title"] + '</p>' + 
    '<p> Description: ' + jd["items"][i]["description"] + '</p>' + 
    '<p><img alt="" src=/uploads/' + jd["items"][i]["image1"] + '></p>' + 
    '</div>'); 
+0

非常感謝! ,回到基礎。我將動態創建一個新的ID。我只是硬編碼進行測試。再次感謝所有的輸入! – eddie

-1

嘗試的

window.onload = function() { 

代替

$(document).ready(function() { 

您也可以嘗試$("#driver").click(function(event){後移動本

$("#hide").click(function(event){ 
    var ele = document.getElementById("target"); 
    ele.style.display = "none";     
}); 

0

您$ .getJSON()調用不返回任何數據,因此你永遠不會創建一個div id爲 「目標」

的$ .getJSON()調用與示數出來: 「所請求資源上沒有'Access-Control-Allow-Origin'標頭,因此不允許Origin'null'訪問,響應的HTTP狀態碼爲404。