Javascript 在DOM上运行D3代码,无需jquery
按照SO问题/答案的建议,我将D3代码放在html下面,并放在一个函数中,该函数在加载时执行Javascript 在DOM上运行D3代码,无需jquery,javascript,d3.js,mamp,Javascript,D3.js,Mamp,按照SO问题/答案的建议,我将D3代码放在html下面,并放在一个函数中,该函数在加载时执行onload,但是,当我在我的MAMP本地服务器上测试时,D3代码没有执行。注意,如果我在控制台中运行runD3code,则会显示预期的条形图,但如果我将该代码包含在index.html中的runD3code函数中,则不会显示条形图。我还注意到,在html下面包含D3是库作者的做法 您能建议解决此问题的方法吗?问题是您的html文件无效。语法错误太多 <!DOCTYPE html> <h
onload
,但是,当我在我的MAMP本地服务器上测试时,D3代码没有执行。注意,如果我在控制台中运行runD3code
,则会显示预期的条形图,但如果我将该代码包含在index.html中的runD3code
函数中,则不会显示条形图。我还注意到,在html下面包含D3是库作者的做法
您能建议解决此问题的方法吗?问题是您的html文件无效。语法错误太多
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
</style>
</head>
<body>
<div class="chart"></div>
<script src="./d3.js" charset="utf-8"></script>
<script>
window.onload = function runD3code() {
console.log("not getting called");
var data = [4, 8, 15, 16, 23, 42];
d3.select(".chart")
.selectAll("div")
.data(data)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
};
</script>
</body>
</html>
.海图组{
字体:10px无衬线;
背景颜色:钢蓝色;
文本对齐:右对齐;
填充:3倍;
保证金:1px;
颜色:白色;
}
window.onload=函数runD3code(){
log(“未被调用”);
var数据=[4,8,15,16,23,42];
d3.选择(“图表”)
.selectAll(“div”)
.数据(数据)
.enter().append(“div”)
.style(“宽度”,函数(d){返回d*10+“px”;})
.text(函数(d){return d;});
};
您的html页面在使用MAMP服务器时对我不起作用。现在,您已经更改了D3文件的名称。谢谢
(function(){
var tId = setInterval(function(){if(document.readyState == "complete") onComplete()},11);
function onComplete(){
clearInterval(tId);
var data = [4, 8, 15, 16, 23, 42];
d3.select(".chart")
.selectAll("div")
.data(data)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
};
})()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
</style>
</head>
<body>
<div class="chart"></div>
<script src="./d3.js" charset="utf-8"></script>
<script>
window.onload = function runD3code() {
console.log("not getting called");
var data = [4, 8, 15, 16, 23, 42];
d3.select(".chart")
.selectAll("div")
.data(data)
.enter().append("div")
.style("width", function(d) { return d * 10 + "px"; })
.text(function(d) { return d; });
};
</script>
</body>
</html>