получение и установка имени тега с помощью jquery - PullRequest
0 голосов
/ 29 ноября 2011

Как я могу изменить имя тега с помощью 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 ]

2 голосов
/ 29 ноября 2011

Ну, если вы знаете, что это будет одним из ограниченного числа вещей, вы можете сделать что-то вроде этого:

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 и затем повторно применить к новому элементу.

2 голосов
/ 29 ноября 2011

Вы не можете. Вам необходимо удалить и заменить тег на новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...