2016-05-10 6 views
1

Gibt es eine Möglichkeit, Körperelement ohne ein bestimmtes Kindelement darin zu extrahieren?Körperelement ohne bestimmtes Kind extrahieren

Zum Beispiel, wenn ich habe:

<body> 
    <div id="id1" class="class1" /> 
    <div id="id2" class="class2" /> 
</body> 

, was ich brauche extrahiert werden soll:

<body> 
    <div id="id1" class="class1" /> 
</body> 

Eigentlich habe ich die Absicht, html2canvas Bibliothek zu verwenden, um Canvas-Element aus einem HTML-Code zu machen , aber ich möchte nicht alle Körperkinder in ein Canvas-Element einschließen.

+0

'$ ('# id1') .html()'? – guradio

Antwort

2

Wenn Sie ein Elternelement abrufen, müssen Sie auch alle seine Kinder übernehmen. Eine mögliche Abhilfe in diesem Fall wäre die body zu wählen, es zu klonen und dann das unerwünschte Kind-Element entfernen, so etwas wie diese:

var $bodyClone = $('body').clone(); 
$bodyClone.find('#id2').remove(); 
// use $bodyClone as needed here... 
+0

Das ist die Lösung, nach der ich gesucht habe. Vielen Dank! – peterremec

+0

Kein Problem, froh zu helfen –

1
$('body').not("#id2").html(); 
or 
$('body').not(".class2").html(); 

und dies ist für mehr

$("div").not(".someclass, #someid,.class").html() 

Hoffnung es wird helfen,

+0

Leider funktioniert dies nicht wie der 'not()' Selektor. –

0

Sie document.getElementById(id) verwenden können, ein Element

zu erhalten

oder getElementsByClassName(class)

Verwenden Sie bessere IDs oder Klassen könnte Ihnen helfen, Filterung überhaupt zu vermeiden, geben Sie einfach alle Ihre Leinwände eine Klasse und ersetzen sie alle.