从javascript设置背景图像不工作

从javascript设置背景图像不工作,javascript,Javascript,在我的javascript中,我的div svg如下所示: var svg = d3.select("#"+settings.id).append("svg") .attr("id", "svg") .attr("width", width + margin.left + margin.right) .attr("height", height + margin.top + margin.bott

在我的javascript中,我的div svg如下所示:

var svg = d3.select("#"+settings.id).append("svg") 
        .attr("id", "svg")

                    .attr("width", width + margin.left + margin.right)
                    .attr("height", height + margin.top + margin.bottom)
                    .append("g")

                    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
然后我又加了一句

document.getElementById('svg').style.backgroundImage = 'url(myimageUrl)';

但是它不起作用

您没有将变量传递给,它看起来像是
myimageurl
应该包含一个图像名为“picture.jpg”的字符串。如果是这样,您可能不会以引号传递变量,因为它是一个字符串

document.getElementById('svg').style.backgroundImage = 'url('+myimageUrl+')';
对该问题的另一种解释可能是:

这取决于执行更改背景颜色的行的位置或更好的时间。
当您在svg变量插入dom之前请求它时,它将找不到元素的id,因此一定要在之后运行它。

提供html代码,如果可能的话设置JSFIDLE…您是想在svg元素上设置背景图像,还是将svg用作背景图像?@adeneo:看起来这与svg无关。这只是一个id,我猜在我的代码版本中,背景图像在css中,我想从javascript中做同样的事情