老师我这里有个问题

来源:4-1 svg绘画各种形状

qq_麥芽糖

2018-12-10 09:48:21

<svg>

<g id="left_color" style="display:block">

<rect x="10" y="100"  width="20" height="20"  stroke="#fff" />

<rect x="40" y="100"  width="20" height="20"  stroke="#fff" />

<rect x="10" y="140"  width="20" height="20"  stroke="#fff" />

<rect x="40" y="140"  width="20" height="20"  stroke="#fff" />

</g>

  <script type="text/javaScript">

  var color_change = document.getElementById('color_change');

  var left_color = document.getElementById('left_color');

  var left_color_length = left_color.getElementsByTagName('rect');

  var i = 0;

  var clo='';

  color_change.onclick = function(){

left_color.style.display="block";

  }

  left_color.onclick = function(){

for(i = 0;i < left_color_length.length; i++){

clo +=  left_color_length[i];

}

console.log(clo)

//color_change.style.fill=clo.style.fill;

 

  }

  </script>

</svg>

我获取到svg的数据是

http://img.mukewang.com/climg/5c0dc5c80001446e04870136.jpg

这么奇怪的,是不是js不能获取到svg里面的内容的?

写回答

3回答

樱桃小胖子

2018-12-11

http://img.mukewang.com/climg/5c0f8bae0001117913650874.jpg

如果你打印输出的是console.log(clo);则可以分别打开数组的每一项,查看每一项对应的遍历到的html的内容,如:

http://img.mukewang.com/climg/5c0f8c480001212b05860146.jpg

比如打开0: rect则可以找到

http://img.mukewang.com/climg/5c0f8bec000126ce07370066.jpg

如果你想单独获取数组中的某一项可以使用console.log(clo[xx]);的方法,譬如:

http://img.mukewang.com/climg/5c0f8cb500019a5305920170.jpg

希望可以帮到你!

1

樱桃小胖子

2018-12-10

同学的打印语句写错位置了哦,如下:

http://img.mukewang.com/climg/5c0e03a100010a3d14310865.jpg

希望可以帮到你!

0
hq_麥芽糖
h 老师,但是我想将每一个结果都保存到clo里面
h018-12-11
共1条回复

樱桃小胖子

2018-12-10

同学是想实现什么效果呢?运行同学上传的代码

http://img.mukewang.com/climg/5c0ddf9600015eba12800945.jpg

运行结果报错

http://img.mukewang.com/climg/5c0ddfba000182e105320052.jpg

原因是同学上传的代码中没有color_change这个id

建议同学描述一下想要实现什么样的效果哦,便于快速准确的帮你解答问题

祝学习愉快!

0
hq_麥芽糖
h 老师,我的循环那里为什么出不来rect里面的内容, <svg width="1060" height="1076" viewBox="0 0 1060 1076" xmlns="http://www.w3.org/2000/svg"> <!--HTML--> <!--左侧颜色--> <g id="left_color" style="display:block"> <rect x="10" y="100" width="20" height="20" stroke="#fff" /> <rect x="40" y="100" width="20" height="20" stroke="#fff" /> <rect x="10" y="140" width="20" height="20" stroke="#fff" /> <rect x="40" y="140" width="20" height="20" stroke="#fff" /> </g> <script type="text/javaScript"> var left_color = document.getElementById('left_color'); var left_color_length = left_color.getElementsByTagName('rect'); var i = 0; var clo=''; left_color.onclick = function(){ for(i = 0;i < left_color_length.length; i++){ clo = left_color_length[i]; } console.log(clo) } </script> </svg> 如果我这样子写的话,它只出来最后一个
h018-12-10
共1条回复

0 学习 · 4826 问题

查看课程