2009-12-20 3 views
1

Disons que j'ai ceci:Comment puis-je remplacer un <object...> par le contenu réel de cet objet?

<object class="MyClass" type="text/html" data="/Whatever/1?renderpartial=1"></object> 
<object class="MyClass" type="text/html" data="/Whatever/2?renderpartial=1"></object> 

Et, je veux utiliser jQuery pour remplacer l'objet avec le code HTML réel de l'objet.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".MyClass").before('<div class="MyClass">#CONTENT#</div>').remove(); 
    }); 
</script> 

Je veux déclencher une requête asynchrone pour aller chercher chacun «/Whatever/1 » et «/Whatever/2 » du serveur et de le mettre à la place de '# # CONTENU.

Est-ce possible?

Répondre

2

Pour remplacer l'objet original comme div:

$(function(){ 
    $('.MyClass').each(function(){ 
     var $current = $(this); 
     $.post($current.attr('data'), function(data){ 
      $current.replaceWith('<div>' + data + '</div>'); 
     }) 
    }); 
}); 
+0

Aussi +1, mais je veux transformer l'objet en une DIV comme je le fais ... –

+0

Cela me donne 'this.attr' n'est pas une fonction ... –

+0

Essayez d'utiliser $ (this) à la place. – seth

1

vous pouvez utiliser le jquery load function:

$(".MyClass").each(function(){ 
    $(this).replace("<div>").load($(this).attr("data")); 
}); 
+0

+1: Ok, ça semble assez bon, mais je veux tourner l'objet en un DIV et 'load' le DIV avec l'URL de l'objet original. Cela peut-il être fait proprement? –

Questions connexes