Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在导航到DOM之前,元素ID不可用_Javascript_D3.js_Svg - Fatal编程技术网

Javascript 在导航到DOM之前,元素ID不可用

Javascript 在导航到DOM之前,元素ID不可用,javascript,d3.js,svg,Javascript,D3.js,Svg,我正在表单提交时加载SVG文件并尝试单击元素,但无法按ID找到元素。导航到DOM后,元素ID可用。如何获取元素?尝试加载svg文件窗口。onload但没有成功 document.getElementById('G-Group'); null 导航到浏览器开发工具后: <path xmlns="http://www.w3.org/2000/svg" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke

我正在表单提交时加载SVG文件并尝试单击元素,但无法按ID找到元素。导航到DOM后,元素ID可用。如何获取元素?尝试加载svg文件窗口。onload但没有成功

document.getElementById('G-Group');
null
导航到浏览器开发工具后:

<path xmlns="http://www.w3.org/2000/svg" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" d="m 873.6268,509.7384 c -0.24555,5.40185 -0.49109,10.8037 -0.73664,16.20555 -4.33361,-1.57148 -8.81028,-4.50147 -12.5237,-0.18338 -2.39215,2.09564 -2.08486,10.2611 2.0028,10.9329 3.77971,3.39045 8.28702,-5.1211 11.32814,-1.90533 0.46754,4.90918 0.93508,9.81835 1.40262,14.72753 5.64739,0 11.29479,0 16.94218,0 0.98215,-10.06709 1.96431,-20.13417 2.94646,-30.20126 -7.12062,-3.192 -14.24124,-6.38401 -21.36186,-9.57601 z" id="G1"/>

要访问
对象的文档,需要使用其属性。请注意,只有当
对象的数据与包含的文档具有相同的来源时,才可以访问该文档

load
事件中访问
对象的DOM,例如:

函数showhide(id,svg){
var元素=document.getElementById(id);
if(!element.getElementsByTagName(“对象”).length){
const object=document.createElement(“对象”);
object.type=“image/svg+xml”;
object.id=id+'1';
object.onload=函数(){
const path=object.contentDocument.querySelectorAll(“#G-Group path”);
for(路径的常量路径){
path.style.fill=“红色”;
}
}
object.data=svg;
元素。追加子元素(对象);
}
}

您能为您的问题创建工作实例(JSFIDLE)吗?您在html中的何处定义了id为
G-Group
的元素?id将在表单submissionHello@SandepGouda上的FloorPlan_V2.svg文件中提供!你查过我的答案了吗?我能帮你吗?
<form onsubmit="event.preventDefault(); setTimeout(showhide('svgContainer','FloorPlan_V2.svg'), 3000);">
        <select id="filename">
            <option value="FloorPlan_V1.svg">Floor 1</option>
        </select>
        <input type="submit" value="Find Seats" />
    </form>
    <div id="svgContainer">
    </div>
function showhide(id, svg) {
  var element = document.getElementById(id);

  if (!element.getElementsByTagName("object").length) {
    var object = document.createElement("object");
    object.type = "image/svg+xml";
    object.data = svg;
    object.id = id+'1';
    element.appendChild(object);
    //D3.JS 
    d3.select('#G-Group').selectAll('path').style("fill","red");

} 

}