2016-07-12 17 views
0

ich zwei verschachtelte <svg> Elemente wie folgt:Get Element innerhalb einer SVG-Element klicken Sie auf

<svg id="main_svg"> 
    <svg data="business" id="something"> 
     <rect> 
      // Code for rectangle 
     </rect> 
    </svg> 
</svg> 

Wie kann ich die ID des <svg> Tag innerhalb main_svg bekommen?

Ich versuchte, die contextmenu Event-Handler mit this.id aber es gibt immer main_svg:

$("svg").contextmenu(function(e) { 
    e.preventDefault(); 
    console.log(this.id); 
}); 

Wie dies geschehen kann? Gibt es bessere Ansätze? Ich bin mit beiden Ereignissen glücklich: onclick oder contextmenu.

+1

Warum kann man tun $ ("# etwas") auf ("Klick", Funktion ({})).? – labago

+0

@labago, weil die ID dynamisch generiert wird – Arihant

Antwort

2

Sie können die jQuery-Funktion $('svg').find("> svg") verwenden, um jedes direkte Kind zu finden, das <svg> -Element eines <svg> -Elements ist.

$('svg').find("> svg").each(function() { 
    var id = $(this).attr("id"); 
    console.log(id); 
}); 

die jsFiddle Siehe: https://jsfiddle.net/kyjn6z87/

+0

Kann ein oder Operator innerhalb der Suchfunktion verwendet werden? – Arihant

+0

Was meinen Sie mit "oder Operator" in diesem Zusammenhang? –

+0

Nun, die Tags innerhalb von main_svg werden dynamisch erzeugt und können entweder SVG- oder PATH-Elemente sein. Gibt es eine Möglichkeit, das Element onclick unabhängig davon auszuwählen, ob es SVG oder PATH ist? – Arihant

Verwandte Themen