【问题标题】:How to print the json values in html Dom using jquery?如何使用 jquery 在 html Dom 中打印 json 值?
【发布时间】:2017-12-18 00:08:33
【问题描述】:

如何在html dom中打印json数据?

我有电影 json,我附加到选择标签,我想在选择电影时将电影名称附加到锚标签...

下面是我的html

<div class="UserData">
            <h1><a href="moviebooking.html">MyMovie-Ticket-Booking</a></h1>
            <select class="selectCity" id="selectCity">
                <option value="City">Select City</option>
                <option value="Bengaluru">Bengaluru</option>
                <option value="Hyderabad">Hyderabad</option>
                <option value="Guntur">Guntur</option>
                <option value="Ongole">Ongole</option>
            </select>
            <span id="welcome"> </span>
        </div>

下面是js

$(document).ready(function() {
  var cityData = [{
      cityName: 'Bengaluru',
      value: "Bengaluru",
      data: [{
          movieName: 'ABC',
          theaterName: 'Tulsi Theatre'
        },
        {
          movieName: 'DEF',
          theaterName: 'PVR'
        },
        {
          movieName: 'GHI',
          theaterName: 'Srinivasa Theatre'
        }
      ]
    },


    {
      cityName: 'Hyderabad',
      value: "Hyderabad",
      data: [{
          movieName: '123',
          theaterName: 'Theatre1'
        },
        {
          movieName: '456',
          theaterName: 'PVR2'
        },
        {
          movieName: '789',
          theaterName: 'Theatre3'
        }
      ]
    },

    {
      cityName: 'Guntur',
      value: "Guntur",
      data: [{
          movieName: 'ABC1',
          theaterName: 'Theatre4'
        },
        {
          movieName: 'DEF2',
          theaterName: 'PVR3'
        },
        {
          movieName: 'GHI3',
          theaterName: 'Theatre5'
        }
      ]
    },

    {
      cityName: 'Ongole',
      value: "Ongole",
      data: 'currently not available'
    }
  ];
    $("#selectCity").on('change', function() {
    var locations = cityData.filter(c => c.cityName === $(this).val())[0].data;
    var locationString = '';
    var locationString2 = '';
    console.log(locations)
    $.each(locations, function(i, item) {

        console.log(JSON.stringify(item));
        locationString += '<option value="' + item.theaterName + '">' + item.theaterName + '</option>';
        locationString2 += '<option value="' + item.movieName + '">' + item.movieName + '</option>';
    });
    $('#secondselectbox').html(locationString);
    $('#thirdselectbox').html(locationString2);
});

});

在选择标签中选择电影名称后如何附加剧院名称和电影名称......

以及如何分别过滤电影和剧院.....

【问题讨论】:

  • 你在哪里卡住了?到目前为止,您尝试过做什么?与此同时,您似乎还没有开始。尝试独自解决挑战,当您遇到困难,并且在 SO 中找不到任何其他答案时,请提出具体问题

标签: javascript jquery html json


【解决方案1】:

您的 html 中没有任何 select#secondselectbox#thirdselectbox。您仍然试图将 html 放入其中。在您的 html 中添加两个带有这些 id 的 select

$(document).ready(function() {
  var cityData = [{
      cityName: 'Bengaluru',
      value: "Bengaluru",
      data: [{
          movieName: 'ABC',
          theaterName: 'Tulsi Theatre'
        },
        {
          movieName: 'DEF',
          theaterName: 'PVR'
        },
        {
          movieName: 'GHI',
          theaterName: 'Srinivasa Theatre'
        }
      ]
    },


    {
      cityName: 'Hyderabad',
      value: "Hyderabad",
      data: [{
          movieName: '123',
          theaterName: 'Theatre1'
        },
        {
          movieName: '456',
          theaterName: 'PVR2'
        },
        {
          movieName: '789',
          theaterName: 'Theatre3'
        }
      ]
    },

    {
      cityName: 'Guntur',
      value: "Guntur",
      data: [{
          movieName: 'ABC1',
          theaterName: 'Theatre4'
        },
        {
          movieName: 'DEF2',
          theaterName: 'PVR3'
        },
        {
          movieName: 'GHI3',
          theaterName: 'Theatre5'
        }
      ]
    },

    {
      cityName: 'Ongole',
      value: "Ongole",
      data: []
    }
  ];
    $("#selectCity").on('change', function() {
    var locations = cityData.filter(c => c.cityName === $(this).val())[0].data;
    var locationString = '';
    var locationString2 = '';
    $.each(locations, function(i, item) {
        locationString += '<option value="' + item.theaterName + '">' + item.theaterName + '</option>';
        locationString2 += '<option value="' + item.movieName + '">' + item.movieName + '</option>';
    });
    $('#secondselectbox').html(locationString);
    $('#thirdselectbox').html(locationString2);
});
  $("#thirdselectbox").on("change", function(){
    $("span#selectedMovie").text($(this).val());
  });
  $("#secondselectbox").on("change", function(){
    $("span#selectedTheater").text($(this).val());
  });

  $('#theaterButton').click(function(){
    var arrTheater = [];
    cityData.forEach(function(theater, i){
      var allTheaters = theater.data.map(t => t.theaterName);
      arrTheater = arrTheater.concat(allTheaters);
    });
    $('#container').html('<b>Theaters: </b><br/>' + arrTheater.join(', '));
  });
  
  $('#movieButton').click(function(){
    var arrMovie = [];
    cityData.forEach(function(movie, i){
      var allMovies = movie.data.map(m => m.movieName);
      arrMovie = arrMovie.concat(allMovies);
    });
    $('#container').html('<b>Movies: </b><br/>'+ arrMovie.join(', '))
  });
  
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="UserData">
    <h1><a href="moviebooking.html">MyMovie-Ticket-Booking</a></h1>
    <select class="selectCity" id="selectCity">
        <option value="City">Select City</option>
        <option value="Bengaluru">Bengaluru</option>
        <option value="Hyderabad">Hyderabad</option>
        <option value="Guntur">Guntur</option>
        <option value="Ongole">Ongole</option>
    </select>
    <span id="welcome"> </span>
    <select class="selectTheater" id="secondselectbox">
    </select>
    <select class="selectMovie" id="thirdselectbox">
    </select>
</div>
<fieldset style="margin-top:20px;">
  <legend>Your Selection</legend>
  <div>Theater: <span id="selectedTheater"></span></div>
  <div>Movie: <span id="selectedMovie"></span></div>
</fieldset>
<div  style="margin-top:20px;">
  <input type="button" id="theaterButton" value="Get Theater"/>
  <input type="button" id="movieButton" value="Get Movie"/>
  <div id="container"></div>
</div>

【讨论】:

  • 我已经得到这个我想在 html dom 中打印电影名称和剧院名称?在选择电影或剧院时如何做到这一点@Mamun
  • 非常感谢,我还有一个疑问,当单击电影按钮时,如何在 html 中放置两个按钮,一个用于电影,另一个用于影院,打印 json 中的所有电影以及影院....@马蒙
  • @Babu,我已经更新了点击按钮获取剧院和电影的答案。但为此,您需要将数组最后一个对象的数据从data: 'currently not available' 更改为data: []。再次感谢。
  • 再次感谢您的真棒@Mamun
  • 我怀疑当我在下拉菜单中选择电影或剧院以显示它正在播放的唯一选定电影并选择剧院以显示正在播放该剧院的电影时?@Mamun
猜你喜欢
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2017-07-27
  • 2012-11-05
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 2017-04-30
相关资源
最近更新 更多