在另一个div中获取JSON附加项

时间:2016-05-23 23:16:44

标签: javascript jquery html json api

我正在尝试在另一个div中单击时显示附加的JSON项目。

例如 -

$.getJSON("URLHERE", function(result){
    $.each(result, function(i, field){
     $(".mydiv").append( "<div class='newdiv'>" + field.name + "," + field.event +  "</div>");
  });

这会获取我的JSON信息,并将其添加到每个项目的.mydiv中。

现在 - 我正在尝试再次获取此信息,以显示在另一个div中,但仅针对所选项目。我试图添加一个单击函数来显示JSON信息,但仅针对所选信息,但没有运气。

$('.mydiv').click(function() {
         $(".seconddiv").append(field.name);
 });

如果有人能让我走上正轨,那将非常感激。

谢谢!

修改

我的HTML

   <div class="container">
      <div class="row">
         <div class="col-md-8">
            <div class="mydiv">
               <h1>...</h1>
            </div>
         </div>
         <div class="col-md-4">
            <div class="seconddiv">
               <h1>...</h1>
            </div>
         </div>
      </div>
   </div>

编辑2

$.getJSON("URLHERE", function(result){
       $.each(result, function(i, field){
         $(".mydiv").append( "<div class='newdiv'>" + field.name + "," + field.event +  "</div>");

         $(document).on('click', 'div.newdiv', function(){
           $('div.seconddiv').append( $(this).html() );
        });

      });

编辑3:

所以,这是有效的,但是它循环遍历每个JSON并提取名称,我基本上只需要这个名字。

       $(document).ready(function() {
      $.getJSON("URLHERE", function(result){
        $.each(result, function(i, field){
          $(".mydiv").append( "<div class='newdiv'>" + field.name + "," + field.event +  "</div>");
       });


        $('.newdiv').click(function() {
         $(".seconddiv").append(field.name); // HOW TO ONLY GET THIS FIELD NAME, NOT FOR EACH JSON ITEM
      });

     });
   });

3 个答案:

答案 0 :(得分:0)

在您添加DOM时,您的DOM元素中没有它。你想要做的是实际管理点击的元素:

let imageView:UIImageView = UIImageView()

if let myImage = UIImage(named: "ic_star") {
    imageView.image = imageView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
}

imageView.tintColor = UIColor.redColor()

bestListButton.setImage(imageView.image, forState: .Normal)

您还必须记住,您无法访问jQuery(document).on('click', 'div.mydiv', function(){ }); 来电之外的JSON

修改

要仅显示已点击的广告,您需要提取$.getJSON()并将其附加到新的.html()。看起来像这样:

div

答案 1 :(得分:0)

这会为具有类mydiv

的元素创建 HTML
$.getJSON("URLHERE", function(result){
    $.each(result, function(i, field){
     $(".mydiv").append( "<div class='newdiv'>" + field.name + "," + field.event +  "</div>");
  });

使用此功能将.seconddiv附加到您想要的信息

$(document).on('click','.newdiv',function() {
     $(".seconddiv").append($(this).html()); // fieldName,fieldEvent
});

答案 2 :(得分:0)

功能有点不清楚但是这里有一个解决方案,当你想显示信息时,点击显示只有一个不同div中的选定名称。我建议将JSON属性存储为新创建的div上的数据元素,以后可以通过简单的单击处理程序轻松检索。

jsfiddle here:https://jsfiddle.net/7961d87z/

只是代码

HTML

<!-- placeholder for your data -->
    <div class="mydiv"></div>
<!-- placeholder for click events -->
    <div class="result"></div>

的Javascript

//fake data
    result= [{name:"item1", event: "something"}, {name:"item2", event: "someevent"}];


     $.each(result, function(i, field){
     //create an element and append data attribute to the element - in this case field name
     el = $("<div class='newdiv'>" + field.name + "," + field.event +  "</div>").data("name", field.name);
     //append element to DOM
        $(".mydiv").append( el );
        })
      //define a click handler for all new elements to display data in a div
        $(".mydiv").on( "click", ".newdiv", function() {
      $(".result").text( $( this ).data("name") );
    });