假设我有一个包含原始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 ');
Run Code Online (Sandbox Code Playgroud)
那么解析XML字符串并使用DOM表示呢?使用jQuery:
doc = $.parseXML(xmlString);
Run Code Online (Sandbox Code Playgroud)
没有jQuery:
var parser = new DOMParser();
var doc = parser.parseFromString(xmlString);
Run Code Online (Sandbox Code Playgroud)
然后你可以做这样的事情:
var paths = doc.getElementsByTagName('path');
// add attributes here
Run Code Online (Sandbox Code Playgroud)
这是一种不易出错的方法.