在SVG元素内部单击元素

时间:2016-07-12 21:12:22

标签: javascript jquery svg

我有两个嵌套的<svg>元素,如下所示:

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

如何在<svg>内获取main_svg标记的ID?

我使用contextmenu尝试了this.id事件处理程序,但它始终返回main_svg

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

如何做到这一点?还有更好的方法吗?我对以下任何一项活动感到满意:onclickcontextmenu

1 个答案:

答案 0 :(得分: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/