2017-08-18 140 views
0

我想添加一个SVG的外部对象,但它没有显示。它被添加到SVG中。为什么会发生这种情况,我该如何解决?我的元素foreignObject不显示

body = d3.select('body') 
svg = body.append('svg').attr('height', 600).attr('width', 600)  

var div= svg.append('foreignObject') 
.attr("width",50) 
.attr('height',50) 
.append("div") 
.attr("class", "tooltip") 
.style("opacity", 1); 
    div.append('img') 
.attr("id", "img_tweet").attr("src", "") 
.attr("class", "imagen_tweet"); 
div.append('div').attr("id", "texto_tweet"); 

document.getElementById('img_tweet').src="https://www.amrita.edu/sites/default/files/news-images/new/news-events/images/l-nov/grass.jpg"; 
document.getElementById('texto_tweet').innerHTML='message' 

https://jsfiddle.net/tzp3oe5a/

+0

jsfiddle中的html元素在哪里?我看到只有一个js – vaso123

+0

@ vaso123我使用d3.js,这个动态创建元素 – yavg

回答

1

您有xhtml前缀外HTML这样.append("xhtml:div") 你可以阅读更多关于这里的解释​​

 body = d3.select('body') 
 
    svg = body.append('svg').attr('height', 600).attr('width', 600)  
 
     
 
    var div= svg.append('foreignObject') 
 
     \t .attr("width", 50) 
 
    \t .attr("height", 50) 
 
    .append("xhtml:div") 
 
    .attr("class", "tooltip") 
 
    .style("opacity", 1); 
 
     div.append('img') 
 
    .attr("id", "img_tweet").attr("src", "https://www.amrita.edu/sites/default/files/news-images/new/news-events/images/l-nov/grass.jpg") 
 
    .attr("class", "imagen_tweet"); 
 
    div.append('div').attr("id", "texto_tweet"); 
 
     
 
    //document.getElementById('img_tweet').src="https://www.amrita.edu/sites/default/files/news-images/new/news-events/images/l-nov/grass.jpg"; 
 
    document.getElementById('texto_tweet').innerHTML='message'
 div.tooltip { 
 
     position: absolute; 
 
     top:14px; 
 
     left: 62px; 
 
     text-align: center; 
 
     width: 100px; 
 
     height: 40px; 
 
     padding: 2px; 
 
     font: 12px sans-serif; 
 
     background: white; 
 
     border-radius: 8px; 
 
     pointer-events: none; 
 
     z-index: 999999; 
 
     } 
 

 
     .imagen_tweet{ 
 
     width: 20px; 
 
     height: 20px; 
 
     }
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.js"></script>

工作的jsfiddle https://jsfiddle.net/azs06/tzp3oe5a/2/

+0

在我真正的问题,这不起作用:( – yavg

+0

对不起,你是不是试图显示与图像和文本的div内SVG?这似乎是在我的例子 – azs06

+0

是啊...但是,你能帮助我吗?https://plnkr.co/edit/EAKmhEp2rj2x9nfFh3OU?p=preview – yavg