$ .each voor value json, hoe gaat het?

Hoe kan $. Each worden gedaan voor het volgen van json-code als volgt (voor naam):

1: 11 11
2: 666666666 99999 777777 1221
3: 55555 00000000 222222222 333333333

{
    "reunits": [
        {
            "reun": [
                {
                    "name": "11",
                    "price": "77192276",
                    "extra": "11",
                    "hotel_id": "77192276"
                },
                {
                    "name": "11",
                    "price": "77192276",
                    "extra": "11",
                    "hotel_id": "77192276"
                }
            ]
        },
        {
            "reun": [
                {
                    "name": "666666666",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "99999",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "777777",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                },
                {
                    "name": "1221",
                    "price": "15190364",
                    "extra": "11",
                    "hotel_id": "15190364"
                }
            ]
        },
        {
            "reun": [
                {
                    "name": "55555",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "00000000",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "222222222",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                },
                {
                    "name": "333333333",
                    "price": "11",
                    "extra": "33",
                    "hotel_id": "15183965"
                }
            ]
        }
    ]
}

Mijn poging is dit (geen werk):

$.ajax({
...
success: function (data) {
    $.each(data.reunits['reun'], function (index, value) {
                    $('.li_show').append('
  • '+value.name+'
  • ');
                    });
                }
    )}
    
    0

    4 antwoord

    $.each(data.reunits, function (index, value) {
        var parts = [];
        $.each(value.reun, function(k,v){
            parts.push(v.name);
        });              
        $('.li_show').append('
  • ' + (index + 1) + ': ' +parts.join(" ")+'
  • ');   
    });
    
    2
    toegevoegd
    @JimBo: Je hebt niet echt aangegeven hoe je het wilt laten afdrukken.
    toegevoegd de auteur Rocket Hazmat, de bron
    Yep, sorry, miste een niveau. Ik heb de reactie bijgewerkt
    toegevoegd de auteur FreeCandies, de bron
    Dit is wat de nieuwste code uitvoert behalve de tag. Als u de tag verwijdert, komt dit terecht zoals u net schreef. $ ('. li_show'). toevoegen ('
  • ' + parts.join ("") + '
  • ');
    toegevoegd de auteur FreeCandies, de bron
    probeer nu plz. sorry, ik ben een beetje slaperig :)
    toegevoegd de auteur FreeCandies, de bron
    Zie hier: jsfiddle.net/M4WQs/3 mijn volledige json en wat ik wil. hoe wordt voor deze json-code elke reunits.reun geplaatst in tooltip elke naam_re?
    toegevoegd de auteur JimBo, de bron
    Nee, ik wil het elke drie keer in tag li doen omdat er drie reunits.reun zijn, als volgt:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • ok?
    toegevoegd de auteur JimBo, de bron
    @Rocket - ik wil het als dit in driemaal lus: 1 = 11 11 2 = 666666666 99999 777777 1221 3 = 55555 00000000 222222222 333333333.
    toegevoegd de auteur JimBo, de bron
    Deze nieuwe code zet alle namen in drie , ik wil ze in eerste instantie in drie keer zetten (1 2 3).
    toegevoegd de auteur JimBo, de bron
    Uw code-uitvoer is als: undefined
    toegevoegd de auteur JimBo, de bron
    $(data.reunits).each(function(i,j){
    $.each(j,function(x,y){
    $.each(y,function(f,g){
    console.log(g.name);
     $('.li_show').append('
  • '+g.name+'
  • ');
    
      });
     });
    });
    

    bewerken

    $(data.reunits).each(function(i,j){
    $.each(j,function(x,y){
    $var=" ";
    $.each(y,function(f,g){
    $var+=" "+g.name;
    //console.log(g.name);
      });
       $('.li_show').append('
  • '+$var+'
  • ');
     });
    });
    

    DEMO

    0
    toegevoegd
    @JimBo zie de bewerkingen plz
    toegevoegd de auteur Rafay, de bron
    Nee, ik wil het elke drie keer doen in tag li omdat er drie reunits.reun zijn, als volgt:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • toegevoegd de auteur JimBo, de bron
    bedankt voor jsfiddle. Zie hier: jsfiddle.net/M4WQs/3 mijn volledige json en wat ik wil. hoe wordt voor deze json-code elke reunits.reun geplaatst in tooltip elke naam_re?
    toegevoegd de auteur JimBo, de bron

    U kunt het volgende doen:

    $.ajax({
    ...
    success: function (data) {
        $.each(data.reunits, function (index, value) {
           for(key in value){
              $.each(value[key], function(i, v){
                 $('.li_show').append('
  • '+v.name+'
  • ');
              });
           }             
        });
    )}
    

    U kunt innerlijke objecten binnen uw array-item itereren met de instructie voor

    0
    toegevoegd
    @Rocket bedankt voor het repareren van mijn typfout, ja ik bedoelde voor, maar niet voor elke groep. Niet zeker over value.reun omdat het niet duidelijk is of we alleen deze eigenschap of anderen ook moeten verwerken.
    toegevoegd de auteur Pavel Podlipensky, de bron
    Het is beter om value.reun te doen in plaats van waarde [sleutel] . Er kunnen andere sleutels zijn die geen naam eigenschappen hebben op hun waarden.
    toegevoegd de auteur Rocket Hazmat, de bron
    @Paul: Ik denk dat je voor bedoelde, niet voor elke .
    toegevoegd de auteur Rocket Hazmat, de bron
    dit is JS code, hoe kan foreach in JS code gebruiken !!!!!
    toegevoegd de auteur JimBo, de bron

    reunits in an array containing objects that have a reun property which is array of objects. You first need to loop through the reunits array, and then loop through each reun array.

    $.each(data.reunits, function(){
      var str = '';
      $.each(this.reun, function(){
        str += this.name+' ';
      });
      $('.li_show').append($.trim(str));
    });
    
    0
    toegevoegd
    @JimBo: Ik ben een beetje druk, ik zal later misschien kijken. Wat betreft uw parse-fout, hebt u een '; aan het einde van uw JSON nodig (vóór data = $. ParseJSON (data); ).
    toegevoegd de auteur Rocket Hazmat, de bron
    @JimBo: je moet dat in de vraag specificeren, hoe moeten we weten dat dat is wat je wilt.
    toegevoegd de auteur Rocket Hazmat, de bron
    @JimBo: Ik weet het, maar het moet je laten zien hoe je elke naam kunt krijgen. Ik laat het aan jou over om het ergens uit te voeren, omdat je nooit hebt opgegeven hoe je het wilde uitvoeren.
    toegevoegd de auteur Rocket Hazmat, de bron
    Heb je de viool gecontroleerd? De code geeft ontijdingsfouten
    toegevoegd de auteur FreeCandies, de bron
    Deze code heeft geen uitvoer
    toegevoegd de auteur JimBo, de bron
    Ik wil het elke drie keer in tag li doen omdat er drie reunits.reun zijn, als volgt:
  • 11 11
  • 666666666 99999 777777 1221
  • 55555 00000000 222222222 333333333
  • toegevoegd de auteur JimBo, de bron
    Zie hier: jsfiddle.net/M4WQs/3 mijn volledige json en wat ik wil. hoe wordt voor deze json-code elke reunits.reun geplaatst in tooltip elke naam_re?
    toegevoegd de auteur JimBo, de bron