9
votes

JQuery - Modifier la chaîne HTML

Quelqu'un pourrait-il me dire comment je peux modifier le HTML avant de l'insérer dans le document?

Ceci est un appel AJAX: P>

url: "http://localhost/cart/public/admin/album",
success: function(html) {
    $(html).find('h1').css('color','red');
    console.log($(html).find('h1').length);
    $('aside').after(html);


6 commentaires

Essayez-vous de changer la couleur du texte ou la couleur d'arrière-plan?


Pouvez-vous faire jsfiddle.net démonstration de ce problème?


Votre code devrait fonctionner, êtes-vous sûr que votre page ne contient aucune règle pour masquer les éléments que vous ajoutez?


Vous manquez un point avant «de côté»?


Y a-t-il une raison convaincante de ne pas l'ajouter au DOM et alors changer de CSS?


Et @ leo.vingi a un point. Si «Mister» est une classe appliquée à certains de vos éléments, vous devez utiliser $ ('. De côté »). Si c'est l'identifiant d'un élément, vous devez utiliser $ ('# de côté »)


4 Réponses :


0
votes

Essayez d'ajouter ! Important code> au style CSS:

$(html).find('h1').css("color", "red !important");


1 commentaires

Vous ne pouvez pas utiliser! Important dans un appel .CSS.



2
votes

Essayez ceci:

$ (html) .Find ('h1'). CSS ("couleur", "rouge"). Parent (). Insérer ('Mister');


1 commentaires

Cela ne ferait que insérer le H1 et non l'ensemble de l'élément HTML



17
votes

On dirait que vous changez de couleur, puis ajoutez la chaîne inchangée au DOM. Essayez ceci: xxx


2 commentaires

Superbe réponse :) Cela pourrait être simplifié comme suit: $ HTML.Find ('H1'). CSS ('Color', 'Rouge'). End (). Insérer ('Mister')


REMARQUE: Si vous souhaitez que l'élément racine de la chaîne, vous ne pouvez pas utiliser trouver dessus, puisque la variable est l'élément racine.



3
votes

La réponse acceptée ici réellement gaspillée beaucoup de mon temps. Au moins, ce n'est pas générique. C'est ce qui est compris après un jour.

$.ajax({
  url: "http://localhost/~yoelusa/the-url-of-your-string.html",
  success: function(htmldata) {
    var $html = $("<div/>").append( htmldata );
    // make your changes on the html string, see some example bellow relevant to my htmlstring
    $html.find('#left').html("");
    $html.find('#right').html("");
    $html.find('.commentlist').remove();
    // when you are ready to insert your string somewhere call the html() function, in my example I inserted it in an iframe
    $("iframe").attr("srcdoc", $html.html() );
  }
});


0 commentaires