jquery - jquery追加svg元素,无法追加多个元素
问题描述
我正在尝试使用 JQuery 附加一些 svg 元素。代码如下图。
$("#save_edits").click(function() {
var img = document.createElementNS('http://www.w3.org/2000/svg','image');
img.setAttributeNS('http://www.w3.org/1999/xlink','href','./img/exclamation-mark.png');
img.setAttributeNS(null,'x','-7');
img.setAttributeNS(null,'y','-35');
img.setAttributeNS(null,'height','15');
img.setAttributeNS(null,'width','15');
if(id==" Shipping"){
$('svg>g').first().append(img);
$('svg>g:eq(2)').append(img);
$('svg>g:eq(3)').append(img);
$('svg>g:eq(4)').append(img);
}
});
但是,只有最后一个附加成功$('svg>g:eq(4)').append(img);
,而不是之前的所有附加。有谁知道为什么以前的被覆盖以及如何防止它发生?
答: 好的,看来我终于想通了。基本上需要为每个追加重新创建 img 元素。
child = ["svg>g:eq(2)","svg>g:eq(3)","svg>g:eq(4)"]
if(id==" Shipping"){
child.forEach(function(e){
var img = document.createElementNS('http://www.w3.org/2000/svg','image');
img.setAttributeNS('http://www.w3.org/1999/xlink','href','./img/exclamation-mark.png');
img.setAttributeNS(null,'x','-7');
img.setAttributeNS(null,'y','-35');
img.setAttributeNS(null,'height','15');
img.setAttributeNS(null,'width','15');
$(e).append(img);
})
解决方案
推荐阅读
- java - 如何将变量作为参数传递给 Aspect
- multiplayer - 我应该使用哪个 Gamelift 实例来同时处理 100 万玩家?
- assembly - 如何使用 ARM 汇编找到 32 位数字的回文数?
- c++ - 为什么 openmp 的 parallel for 不适用于矢量化色彩空间转换?
- java - 如何将数组存储在 strings.xml 或 assets 中并在 ListViewAdapter 中使用
- c# - ContainerVisual.Offset 和 Visual.VisualOffset 有什么区别?
- docker - 如何构建 docker 映像并推送到 azure 容器注册表
- sql - 我的半高级 PostgreSQL 查询有什么问题?(与计算时间和时间间隔有关。)
- rust - 流上的 tokio::timeout 总是发生
- paypal - 如何收集信用卡信息并向拍卖的获胜者收费