Esta pregunta se ha hecho muchas y han pasado los últimos 3 días yendo a través de un número de diferentes «soluciones», ninguno de los cuales puedo llegar a trabajar.

Tengo un gran archivo JSON, algunos de 150k de las entradas, que quiero ver como un ListVIew en JQuery Mobile. (Voy a estar usando el Filtro de usar los datos)

La mejor que he venido para arriba con es este

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/jqm-docs.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>




</head>

<body>
    <div data-role="page">
    <div data-role="content">
        <div id="output">
            <ul data-role="listview" data-inset="true" data-filter="true">

            </ul>
        </div>
    </div>
</div>


<script type="text/javascript">
        //simulating the JSON coming from the server
var json = '["City1","City2","City3"]';
//jQuery getJSON will do this step
var data = $.parseJSON(json);

//and this is your code
$.each(data, function (index, value) {
        $('#output').children('ul').append('<p>'+value+'</p>').listview('refresh');
});

</script> 

</body>
</html>

Si puedo quitar el .listview («actualizar»), a continuación, los tres JSON se enumeran las entradas en el mismo ListView campo. Yo, obviamente, quieren que les separan.

¿Alguien puede asesorar sobre cómo hacer esto?

Con gracias

Tim

InformationsquelleAutor tjmgis | 2012-06-10

3 Comentarios

  1. 2

    Con el fin de utilizar $.parseJSON primer lugar, necesitamos tener la adecuada Formato de cadena JSON

    así que supongo que la variable

    var json = '["City1","City2","City3"]';

    debería parecerse más:

    var json = '{"city":"City1"},{"city":"City2"},{"city":"City2"}';

    a continuación, antes de convertir a JSON, más bien sería que desee dividir primero

    var jsonSplit = json.split(',');

    y convertir a JSON cada parte separada dentro de una matriz

    var data = new Array(), i;
    for(i in jsonSplit){
     if(jsonSplit[i].length){ //remove last empty element after .split()
      data[i] = $.parseJSON(jsonSplit[i]);
     }
    }

    a continuación, puede manipular data como un objeto de javascript

  2. 1

    Le falta li elementos.

    $.each(data, function (index, value) {
            $('#output').children('ul').append('<li><p>'+value+'</p></li>').listview('refresh');
    });
  3. 1
    $.each(data, function (index, value) {
            $('#output').children('ul').append('<li><p>'+value+'</p></li>').listview('refresh');
    });

    Quitar Listview(actualizar) basado en lo que estás haciendo aquí, usted no necesita una actualización cada vez. Si agrega dinámicamente a través de php decir… que Usted necesita para actualizar en la final.

    $.each(data, function (index, value) {
            $('#output').children('ul').append('<li><p>'+value+'</p></li>');
    });

Dejar respuesta

Please enter your comment!
Please enter your name here