使用javascript删除生成的html代码中的某一行

使用javascript删除生成的html代码中的某一行,javascript,html,d3.js,Javascript,Html,D3.js,我的网页中有以下从d3js生成的html代码: <path class="line" d="M1161.736,75.2609523809524L580.868,89.75238095238097L0,138.81904761904758L-299342.3078216,138.81904761904758L-299923.1758216,147.04761904761898" style="stroke: rgb(0, 173, 242);"></path> 有没

我的网页中有以下从d3js生成的html代码:

<path class="line" d="M1161.736,75.2609523809524L580.868,89.75238095238097L0,138.81904761904758L-299342.3078216,138.81904761904758L-299923.1758216,147.04761904761898" style="stroke: rgb(0, 173, 242);"></path>

有没有一种方法可以只用javascript就去掉行“L-299342.3078216138.81904761904758L-299923.1758216147.04761904761898”?我想删除任何以“-”开头的数字

我无法访问生成的数字,所以我尝试在js上对此进行黑客攻击


谢谢

这将起作用,但如果模式发生更改,您可能需要修改正则表达式:

var d = document.getElementsByTagName("path")[0].getAttribute("d");
d = d.replace(/L-(\d)/g, ""); // Regular expression (assumes 'L-' always at the end of the 'd' element, to be adapted if needed)
document.getElementsByTagName("path")[0].setAttribute("d", d);
如果您有多个“路径”元素,则需要在所有这些元素上进行循环,方法如下:

var paths = document.getElementsByTagName("path");
for (var index = 0; index < paths.length; index++) {
    d = paths[index].getAttribute("d");
    // etc.
}

您可以尝试使用此模式:
([\d.]+)?L-[\d.]+,?

for(Array.from的var标记(document.getElementsByTagName(“path”)){
var value=tag.getAttribute(“d”)。替换(/([\d.]+)?L-[\d.]+,?/g,”);
tag.setAttribute('d',值);
document.body.innerText+=tag.outerHTML
}

你好,我试过在这里做:介意吗?我这边不行。你能展示一下你想要达到的效果吗<代码>@T–n或。只要去掉负值,任何一种方法都可以。谢谢,你能检查一下吗?我得到了一个奇怪的输出。@JustineM你用的模式和我的不一样
var paths = document.getElementsByTagName("path");
for (var index = 0; index < paths.length; index++) {
    d = paths[index].getAttribute("d");
    console.log(d);
    d = d.replace(/L-(.*)$/g, ""); // Regular expression (assumes 'L-' always at the end of the 'd' element, to be adapted if needed)
    document.getElementsByTagName("path")[index].setAttribute("d", d);
    console.log(d);
    console.log("---");
}