使用jquery获取和设置标记名称

时间:2011-11-28 20:54:39

标签: jquery svg

如何使用jquery更改标记名称?我使用HTML5,我正在使用内置的svg标签。我内心有一个圆圈标记。

<svg id="svgelem" height="500" xmlns="http://www.w3.org/2000/svg">
<circle id="shape" cx="600" cy="250" r="250" fill="red"/>
</svg>

我想使用jquery事件“click”来制作它,而不是当我点击页面的主体时它将检查页面上的形状(即:svg标签内的标签的标签名称) 。如果它是一个圆圈,我将擦除圆形标记并制作一个矩形,如果是一个矩形,我将制作一个多边形(即:三角形)。但我没有找到任何人解释我如何检查这一点。

2 个答案:

答案 0 :(得分:2)

你做不到。您需要删除并替换新标签。

答案 1 :(得分:2)

好吧,如果你知道这将是有限数量的东西之一,你可以做这样的事情:

function handle($el) {
    if ($el.is("circle")
        $el.replaceWith("<rect id='shape'>");
    else if ($el.is("rect")
        $el.replaceWith("<poly id='shape'>");
    // etc...
}

function setHandler() {
    $("#shape").unbind().click(function() {
        handle($(this));
        setHandler();
    }
}
setHandler();

但是,你会丢失所有属性,如cx,cy等。所以那些需要存储在handle的开头,然后重新应用到新元素。

相关问题