jQuery, cómo cargar el contenido ajax después de un elemento especificado

StackOverflow https://stackoverflow.com/questions/2146481

  •  23-09-2019
  •  | 
  •  

Pregunta

Es necesario cargar algún contenido ajax después de que el conjunto de campos con la dirección de la clase. Con el siguiente código se reemplazará el contenido de la .Address con el contenido ajax.

    $('.accordion .head').click(function() {
    $(this).next().find('.address').after().load('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html');
    $(this).next().toggle('slow');
    return false;
}).next().hide();

<div style="display: none;">
<fieldset class="address">
<!-- AJAx CONTENT GOES HERE -->
    <ol>
        <li>Stadhouderskade 78</li>
        <li> Amsterdam-Zuid</li>
        <li>020-5239666</li>
    </ol>
</fieldset>
<!-- BUT THE AJAx CONTENT NEEDS TO GO HERE -->
<span class="tags">Tags: museum</span>
</div>
¿Fue útil?

Solución

Por lo general hacer que de esta manera:

var clicked = $(this);
$.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
function(data){
    alert("Data Loaded: " + data);
    $(clicked).next().find('.address').after(data);
});

Otros consejos

Esto debería funcionar ..

$('.accordion .head').click(function() {
    $next = $(this).next();
    $.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
          function(data){
                         $next.find('address').after( data );
                        }
         ).end().toggle('slow');
    return false;
}).next().hide()

En realidad after requiere que el objeto a append después elemento dado. cuando se llama

$(this).nex().find('addresss').after()

Se le devolvió la referencia a:

'address' + [content appended by `after`]

ya que no hemos dado nada a la función after para anexar a Dirección por lo que todavía llamamos load en $('.address').

utilizar este script en su lugar:

    $('.accordion .head').click(function() {
    $(this).next().find('.address').after($("div/>")
     .load('http://test.dev/search/view/IdDaytrip/' + 
         $(this).attr('id') + '.html'));
    $(this).next().toggle('slow');
    return false;
}).next().hide();

esto crea nueva div para envolver el contenido ajax y mostrarla en forma correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top