2016-07-12 64 views
0

の内側をクリック入手:次のように私は2つのネストされた<code><svg></code>の要素を持っている要素はSVG要素

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

がどのように私はmain_svg内部<svg>タグのIDを取得することができますか?

私はthis.idcontextmenuイベントハンドラを試してみましたが、それは常にmain_svgを返します。

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

はどのようにこれを行うことができますか?より良いアプローチはありますか?どちらのイベントにも満足しています:onclickまたはcontextmenuです。

+1

なぜあなたはカント$( "#何か")上( "クリック"、機能を({}))。? – labago

+0

@labago IDが動的に生成されるため – Arihant

答えて

2

jQuery関数$('svg').find("> svg")を使用して、<svg>要素のすべての直接の子 - <svg>要素を見つけることができます。

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

はjsFiddleを参照してください: https://jsfiddle.net/kyjn6z87/

+0

検索機能内でaまたは演算子を使用できますか? – Arihant

+0

この場合、「または演算子」とはどういう意味ですか? –

+0

main_svg内のタグは動的に生成され、SVGまたはPATH要素のいずれかになります。 SVGかPATHかにかかわらず要素を選択できる方法はありますか? – Arihant

関連する問題