【发布时间】:2018-07-20 07:51:32
【问题描述】:
我有点困惑,请帮我解决一个问题。
我正在使用 VueJS + d3.js。
我的代码如下所示:
<template>
<div class='chart-frame-chart-comp border-black-1 border-radius-1'>
<div class='plot'>
</div>
</div>
</template>
<script>
import * as d3 from 'd3'
export default {
name: 'chart-frame-chart-comp',
mounted () {
this.$nextTick(this.plot)
},
methods: {
plot () {
console.log(this.getPlotSize())
},
getPlotSize () {
let a = d3.select('.chart-frame-chart-comp .plot')
console.log('a', a)
let b = a.attr('tagName')
console.log('b', b)
return b
}
}
}
</script>
在getPlotSize 中,我试图返回选定元素的属性(具有.plot 类的元素)
所以在调试器中,我看到了输出:
显然,d3 设法获得了一个node(因为它是实际元素,所以我一直在寻找 plus selection 只返回一个我一直在寻找的元素)。但是当 d3 尝试返回 getAttribute 的值时,前者返回 null 而 hasAttribute 返回 false。但是 Chrome 调试器会看到该元素具有这些属性:
显然我错过了一些东西!所以我的问题是:我做错了什么?
【问题讨论】:
-
发布您的代码,而不是发布图片!
-
@UllasHunka 更新问题
标签: javascript d3.js vuejs2 getattribute