这是有效的:
<div id="chart"></div>
<script>var svg = d3.select("#chart").append("svg:svg");</script>
字符串
这并不:
<script>var svg = d3.select("#chart").append("svg:svg");</script>
<div id="chart"></div>
型
我尝试将代码 Package 在jquery document.ready()中,用jquery抓取元素,并将其传递到d3.select,但这也不起作用。Edit一旦我掌握了jquery document.ready()语法,它就起作用了。
我可以在页面顶部包含JavaScript,但仍然选择下面的元素吗?谢谢。
7条答案
按热度按时间bqf10yzr1#
字符串
换句话说,这不会发生,因为你不能查询还不存在的东西--所以在页面加载后再做(这里通过jquery)。
顺便说一句,建议您将JS文件放在body标签关闭之前。
yuvru6vn2#
没有足够的声誉来评论,所以我只把它放在这里:
为了扩展Micah的答案-浏览器从上到下运行您的代码,所以如果您编写:
字符串
浏览器将创建一个id为“chart”的div,然后运行你的脚本,它将尝试找到那个div,然后,万岁,成功了。
否则,如果你写:
型
浏览器运行你的脚本,并试图找到一个div与id图表,但它还没有被创建,所以它失败了。
然后浏览器创建一个id为“chart”的div。
mlmc2os53#
使用jQuery
$(document)
函数.字符串
x8goxv8g4#
我刚刚发现,如果你的元素id只是一个
number
,那么d3.select(“1234”),将无法工作。唯一ID必须是
alpha-numeric
字符。d3.select(“1234”)
d3.select(“container1234”)
a11xaf1n5#
只需在
</bod>
标记之前添加<script src="./custom.js"></script>
即可。这将为d3.select(#chart)
检测html主体中#chart
元素提供时间tjjdgumg6#
你只需要做简单的事情。
<div></div>
部分之后。div
。e0uiprwp7#
请尝试这种方法。它对我很有效。
字符串