2017-08-11 3 views
1

Je voudrais exporter mon div HTML comme jpeg en cliquant sur un bouton qui est dans la div et je ne veux pas le bouton à imprimer. Par conséquent, j'ai besoin d'un sélecteur sur la div qui ne sélectionne pas les éléments avec une certaine classe à l'intérieur de la div.Sélectionnez un élément sans certains éléments à l'intérieur

J'ai essayé le: non() sélecteur, mais il ne fonctionne pas appearantly:

$(".asdf:not(.export-button)") 

Voici mon code:

<div id="asdf"> 
    <p>Lorem ipsum ...</p> 
    <img src="area_graph.png" alt="graph"/> 
    <p>hallo</p> 
    <button class="export-button">EXPORT</button> 
</div> 

$(".export-button").on("click", function() { 

    var $tempNode = $(this).parent()[0]; 
    $tempNode.remove(".export-button"); 
    console.log($tempNode); 

    // image export 
}); 
+0

Pourquoi mettre tout simplement pas display: none à la touche? – user5014677

+0

pourquoi ne pas cloner le div 'asdf' avec le bouton sur une div qui est caché et d'utiliser cette div pour rendre l'image – guradio

Répondre

0

Comme le DOM est une structure arborescente lorsque vous sélectionnez un élément que vous obtenez tous les enfants avec. Pour faire ce que vous avez besoin, vous aurez besoin de sélectionner l'élément puis remove() les éléments que vous ne voulez pas dans une déclaration distincte

$(".export-button").on("click", function() { 
 
    var $tempNode = $(this).parent().clone(); 
 
    $tempNode.find(".export-button").remove(); 
 
    console.log($tempNode.html()); 
 

 
    // image export 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="asdf"> 
 
    <p>Lorem ipsum ...</p> 
 
    <img src="area_graph.png" alt="graph" /> 
 
    <p>hallo</p> 
 
    <button class="export-button">EXPORT</button> 
 
</div>

+0

cacher travaillera à droite au lieu d'enlever complètement le bouton changer la visibilité de se cacher comme si elle n'y est pas – guradio

+0

@guradio c'est aussi possible. –

+0

si je dois choisir hors du cet élément du div cliqué? Le code suivant ne fonctionne pas pour moi: var $ tempNode = $ (this) .parent() [0]; tempNode.remove $ ("export-bouton."); – DavidH