Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 除非调用alert(),否则不会设置异步回调中设置的值?_Javascript_Html_Asynchronous_D3.js - Fatal编程技术网

Javascript 除非调用alert(),否则不会设置异步回调中设置的值?

Javascript 除非调用alert(),否则不会设置异步回调中设置的值?,javascript,html,asynchronous,d3.js,Javascript,Html,Asynchronous,D3.js,HTML分区 <div id="viz"></div> javascript <script type="text/javascript"> var gg=document.getElementById("viz"); function ex(nn) { var zzz; d3.xml("./xyzfiles/svgs/s"+nn+".svg", "image/svg+xml", function(xml) { zzz

HTML分区

<div id="viz"></div>

javascript

<script type="text/javascript">
var gg=document.getElementById("viz");

function ex(nn) {
    var zzz;

    d3.xml("./xyzfiles/svgs/s"+nn+".svg", "image/svg+xml", function(xml) {
        zzz=xml.documentElement;
    });

    if(q==null) {
        alert("no child");
    } else {
        alert("has child");
    }

    gg.appendChild(zzz);
}

ex(1);    
ex(6);
</script>   

var gg=document.getElementById(“viz”);
函数ex(nn){
var zzz;
d3.xml(“./xyzfiles/svgs/s”+nn+“.svg”,“image/svg+xml”,函数(xml){
zzz=xml.documentElement;
});
if(q==null){
警惕(“无子女”);
}否则{
警惕(“有孩子”);
}
gg.appendChild(zzz);
}
ex(1);
ex(6);
我有svg文件s1.svg,s2.svg。。。。当我使用alert()函数时,但当我像下面那样删除时,它们正在加载

<script type="text/javascript">
var gg=document.getElementById("viz");

function ex(nn) {
    var zzz;

    d3.xml("./xyzfiles/svgs/s"+nn+".svg", "image/svg+xml", function(xml) {
        zzz=xml.documentElement;
    });

    gg.appendChild(zzz);
}

ex(1);    
ex(6);
</script>   

var gg=document.getElementById(“viz”);
函数ex(nn){
var zzz;
d3.xml(“./xyzfiles/svgs/s”+nn+“.svg”,“image/svg+xml”,函数(xml){
zzz=xml.documentElement;
});
gg.appendChild(zzz);
}
ex(1);
ex(6);

ex(1),ex(6)没有被执行。为什么会发生这种情况,先生,是否有任何静默的方法来刷新DOM,以便ex()可以在没有警报的情况下执行()。

d3.xml
调用返回之前,您正在追加
zzz
。您需要在回调中执行此操作。此警报导致浏览器停止,因此异步调用在追加时已完成。使用
console.log
而不是
alert
会提供线索

顺便问一下,
q
应该用于什么


关于这个话题,有很多问题。请参阅,,.

solved sir@torazaburosorry sir我想删除以前的子级(如果有)并加载新的svg。最简单的方法可能是
gg.deleteChild(gg.firstChild)