Javascript 在SVG平移缩放中搜索SVG

Javascript 在SVG平移缩放中搜索SVG,javascript,html,svg,svgpanzoom,Javascript,Html,Svg,Svgpanzoom,因此,我使用svg平移缩放来显示动态加载的svg元素。加载元素的代码类似于这里的示例:(要了解我的意思,请查看源代码) 我试图做的是在SVG文档中搜索与特定查询匹配的文本标记。我找到了一个类似于该部分的解决方案的示例,但是我找不到任何关于如何在SVG pan zoom中访问SVG内容的内容 恐怕我没有任何代码。。。我已经做了很长一段时间的反复试验。基本上,我只是想弄清楚如何访问SVG内容,以便搜索它 谢谢 我认为这个答案很有用: 例如,假设您要查找tspan中包含的字符串(因为您没有提供更多详细

因此,我使用svg平移缩放来显示动态加载的svg元素。加载元素的代码类似于这里的示例:(要了解我的意思,请查看源代码)

我试图做的是在SVG文档中搜索与特定查询匹配的文本标记。我找到了一个类似于该部分的解决方案的示例,但是我找不到任何关于如何在SVG pan zoom中访问SVG内容的内容

恐怕我没有任何代码。。。我已经做了很长一段时间的反复试验。基本上,我只是想弄清楚如何访问SVG内容,以便搜索它


谢谢

我认为这个答案很有用:

例如,假设您要查找tspan中包含的字符串(因为您没有提供更多详细信息),那么您可以拥有一个搜索框,当它更改时,将调用以下函数:

function searchTerm() {
    let term = this.value;
    
    var tspans = document.getElementsByTagName("tspan");
    var found;

    for (var i = 0; i < tspans.length; i++) {
      if (tspans[i].innerHTML.includes(term)) {
        found = tspans[i];
        break;
      }
    }

    let position = found.parentNode.parentNode.getAttribute("transform").split("translate(")[1].split(")")[0];
    let posX = position.split(",")[0];
    let posY = position.split(",")[1];
    

panZoom.zoom(1);
panZoom.pan({x:0,y:0});
var realZoom= panZoom.getSizes().realZoom;
panZoom.pan
({  
x: -(posX*realZoom)+(panZoom.getSizes().width/2),
y: -(posY*realZoom)+(panZoom.getSizes().height/2)
});
}
函数searchTerm(){
设term=this.value;
var tspans=document.getElementsByTagName(“tspan”);
var发现;
对于(变量i=0;i

正如您所见,此代码是针对特定情况编写的,但您可以根据需要获得该职位。

我认为此答案非常有用:

例如,假设您要查找tspan中包含的字符串(因为您没有提供更多详细信息),那么您可以拥有一个搜索框,当它更改时,将调用以下函数:

function searchTerm() {
    let term = this.value;
    
    var tspans = document.getElementsByTagName("tspan");
    var found;

    for (var i = 0; i < tspans.length; i++) {
      if (tspans[i].innerHTML.includes(term)) {
        found = tspans[i];
        break;
      }
    }

    let position = found.parentNode.parentNode.getAttribute("transform").split("translate(")[1].split(")")[0];
    let posX = position.split(",")[0];
    let posY = position.split(",")[1];
    

panZoom.zoom(1);
panZoom.pan({x:0,y:0});
var realZoom= panZoom.getSizes().realZoom;
panZoom.pan
({  
x: -(posX*realZoom)+(panZoom.getSizes().width/2),
y: -(posY*realZoom)+(panZoom.getSizes().height/2)
});
}
函数searchTerm(){
设term=this.value;
var tspans=document.getElementsByTagName(“tspan”);
var发现;
对于(变量i=0;i
正如您所看到的,这段代码是针对特定情况编写的,但是您可以根据需要获得该职位