Jquery JSON不显示数据

时间:2015-11-05 17:20:25

标签: jquery css json ajax html5

我一直在搜索几个小时,似乎无法找到问题在我的代码中的位置。我尝试了几种资源并搜索了不同的网站。当"获取JSON数据"点击下面没有任何appaears。有人可以查看代码并查看我出错的地方。

非常感谢!



$(document).ready(function() {

  $('#clickme').click(function(e) {

    $.getJSON('data.json', function(data) {

      var items = [];

      $.each(data, function(key, val) {

        items.push('<li id="' + key + '">' + val + '</li>');

      });

      $('<ul/>', {
        'class': 'interest-list',
        html: items.join('')
      }).appendTo('#ajaxjson');



    });

    e.preventDefault();
  });

});
&#13;
<!DOCTYPE HTML>
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" type="text/css" href="styles/reset.css">
  <link rel="stylesheet" type="text/css" href="styles/style.css">
  <link href='https://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="scripts/hide_img.js"></script>
  <script src="scripts/fadein_out.js"></script>
  <script src="scripts/increaseTextSize.js"></script>
  <script src="scripts/hideVideo.js"></script>
  <script src="scripts/showVideo.js"></script>
  <script src="scripts/ChangeHeader.js"></script>
  <script src="scripts/eventHover.js"></script>
  <script src="ajaxload.js"></script>




  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

  <script src="scripts/form_tooltip.js"></script>

  <style>
    .mma {
      font-size: 75%;
      color: ;
    }
    .important {
      font-weight: bold;
      font-size: 50px;
    }
    .blue {
      color: blue;
    }
  </style>

  <title>Mixed Martial Arts</title>

</head>

<body>

  <header>
    <div class="wrapper">
      <h1 id="headertext">Mixed Martial Arts<span class="color"></span></h1>
      <nav>
        <ul>
          <li id="hideshowimg"><a href="#">Hide/Show Image</a>
          </li>
          <li id="increaseText"><a href="#">Increase Text</a>
          </li>
          <li id="showVideo"><a href="#">ShowVideo</a>
          </li>
          <li id="changecolor"><a href="#">Colour</a>
          </li>
        </ul>
      </nav>
    </div>

    </div>
  </header>

  <div id="hero-image">
    <div class="wrapper">
      <a href="" class="button-1">Fade Out/In</a>
    </div>
  </div>

  <div id="features">
    <div class="wrapper">
      <ul>
        <li class="feature-1">
          <h4 class="feature1-heading">What is MMA</h4>
          <p class="mma">MMA is a full-contact combat sport that allows for different techniques to grapple and strike their oppentent.</p>
        </li>
        <li class="feature-2">
          <h4>Common Disciplines</h4>
          <a href="#" id="clickme">Get JSON Data</a>
          <p id="ajaxjson"></p>


          <li class="feature-3">
            <h4>Competitions</h4>
            <p class="mma">There are many competitions that fighters can fight in such as Ultimate Fighting Championship (UFCPride, CageWars, Clan Wars and many more. MMA is the fastest growing sport today!</p>
          </li>
          <div class="clear"></div>
      </ul>
    </div>
  </div>

  <div id="primary-content">
    <div class="wrapper">
      <article>
        <h3>What is MMA?</h3>
        <a href="" class="button-video">Hide Video</a>

        <iframe width="560" height="315" src="https://www.youtube.com/embed/PnUmcL07xnY" frameborder="0" allowfullscreen></iframe>
      </article>
    </div>
  </div>



  <div id="cta">
    <div class="wrapper">
      <h3>Contact Form!</h3>
      <p>
        <form>
          First name:
          <br>
          <input id="txtName" title="Please input your firstname!" type="text" name="firstname">
          <br>Last name:
          <br>
          <input id="txtSurname" title="Please input your lastname!" type="text" name="lastname">
        </form>
      </p>
      <a href="#" class="button-2">Submit</a>
    </div>
  </div>

  <footer>
    <div class="wrapper">
      <div id="footer-info">
        <p>Copyright 2015 Diarmuid Bogner.</p>
      </div>

      <div class="clear"></div>
    </div>
  </footer>

</body>

</html>
&#13;
&#13;
&#13;

{

    "one": "Judo",
    "two": "Karate",
    "three": "Boxing",

}

1 个答案:

答案 0 :(得分:0)

请参阅以下内容,确保ajax请求返回您期望的内容!

function DataCtrl($) {
  var self = this;
  
  self.btn = $('#btn');

  self.loadData = function(event) {
    event.preventDefault();
    
    $  
//      .getJSON('data.json') // we need to comment, ajax isn't available
      .when({"one": "Judo", "two": "Karate", "three": "Boxing" }) // this is just a mock for the working example
      .then(function(data) {
        var listItems = [];
        
        for(var i in data) {
          if(!data.hasOwnProperty(i)) { continue; }
          
          listItems.push('<li id="listItem-'+ i +'">'+ data[i] +'</li>');
        }
      
        return listItems;
      })
      .then(function(items) {
        
        return $('<ul />', {
          html: items
        });
      })
      .then(function(list) {
        return $('#result').append(list);
      })
    ;
    
    
  };
  
  self.btn.click(self.loadData.bind(self));
}


jQuery(document).ready(DataCtrl);
#result { width: 100%; min-height: 10em; background: lightseagreen; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="btn">Load Data</button>
<div id="result"></div>