javascript - 用包含实例索引的变量替换字符串的每个实例

标签 javascript

假设我有一个包含原始 svg xml 的大字符串,并且我想更改 <path 的每个实例至 <path class="pathX" (其中 X 是匹配项的索引)。在 javascript 中执行此操作的最佳方法是什么?我正在使用这段有效的代码,但我很好奇是否有更好的方法:

var svgArray = mySvgStr.split('<path ');
for(var i = 1, len = svgArray.length; i < len; i++) {
  var newStr = 'class="path' + i + '" ' + svgArray[i];
  svgArray[i] = newStr;
}
var svgWithClasses = svgArray.join('<path ');

最佳答案

如何解析 XML 字符串并改用 DOM 表示?使用 jQuery:

doc = $.parseXML(xmlString);

没有 jQuery:

var parser = new DOMParser();
var doc = parser.parseFromString(xmlString);

然后你可以做这样的事情:

var paths = doc.getElementsByTagName('path');
// add attributes here

这是一种不易出错的方法。

关于javascript - 用包含实例索引的变量替换字符串的每个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946677/

相关文章:

javascript - 最多 6 个字符的混合数字的正则表达式验证

javascript - 从 URLSearchParams 获取对象数组

javascript - 使用 JavaScript 通过浏览器在客户端裁剪图像

javascript - Mootools:getElement 方法在 XML AJAX 响应中不可用

javascript - 将 wiredep 返回的所有文件连接到一个文件中

javascript - 编辑 p 标签内的字符串,但不编辑其中其他标签内的内容

javascript - Mongodb:如何在上限集合上创建 `tail -f` View ?

javascript - 如何通过 Javascript/JQuery (Ampersand.js/Angular) 用对象数组的对象填充 html 表

javascript - 如何在javascript中获取变体数字组合的数量?

javascript - Scriptaculous 无法使用最新的原型(prototype)