#javascript #jquery #dom #raphael
#javascript #jquery #dom #рафаэль
Вопрос:
У меня есть SVG, созданный с помощью Raphael 2.0, который выглядит следующим образом :
<div class="stave">
<svg height="342" version="1.1" width="512" xmlns="http://www.w3.org/2000/svg"
style="overflow: hidden; position: relative;" viewBox="0 410 1300 80"
preserveAspectRatio="meet">
........
</svg>
</div>
я просто хочу установить идентификатор в тег svg! Как я могу это сделать? JQUERY или RAPHAEL 2.0?
я вижу много ответов, но ни один из них не работает для меня.
Спасибо за помощь
Комментарии:
1. Какой код вы подали в суд для создания SVG. Это единственный SVG-тег на всей странице?
Ответ №1:
document.getElementsByTagName('svg')[0].id = 'svg_id';
Это должно сработать, если у вас на странице есть только один SVG-тег и если вы вызвали его после создания тега с помощью Raphael.
Если вы не создали тег с помощью Raphael, вы можете просто использовать что-то вроде этого:
<svg id='svg_id'></svg>
Наряду с другими атрибутами, конечно.
Ответ №2:
var paper=Raphael(0, 0, 342, 512)
paper.canvas.id='id_svg1'
Комментарии:
1. Пожалуйста, объясните, что делает ваш код и почему это решит проблему. Ответ, который просто содержит код (даже если он рабочий), обычно не поможет OP понять их проблему.
2. при
paper.canvas
обращении к нужному элементу SVG<svg ..
(не как к элементу DOM)
Ответ №3:
С помощью jQuery вы можете использовать селектор элементов и :nth-child().
Что-то вроде этого: (jsFiddle)
<div class="frame">
<div>div1</div>
<div>div2</div>
<div>div3</div>
</div>
<script type="text/javascript">
$('div').css({'font-weight':'bold'});
$('.frame div:nth-child(2)').attr("id","newId");
$('#newId').css({'color':'#f30'})
</script>
Конечно, в вашем случае селектор будет $('svg')
Комментарии:
1. Мне это нравится! Я предпочел этот, потому что я хочу использовать jquery для большинства вещей!
2. @trouble Я тоже люблю jQuery, но это грустный комментарий.
3. Потому что, как правило, мы используем vanilla JS, если можем.