Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3js w3c选择器_Javascript_D3.js - Fatal编程技术网

Javascript d3js w3c选择器

Javascript d3js w3c选择器,javascript,d3.js,Javascript,D3.js,d3js文档说我可以使用W3C选择器规范来选择DOM中的对象。为什么下面的简单代码不起作用?实际上什么也没出现。例如,如果我用body替换选择器,它会工作。但如果我的目标是一个特定的div或者身体内部的任何标记,就不会这样 <html> <head> <link rel="stylesheet" href="style.css">

d3js文档说我可以使用W3C选择器规范来选择DOM中的对象。为什么下面的简单代码不起作用?实际上什么也没出现。例如,如果我用body替换选择器,它会工作。但如果我的目标是一个特定的div或者身体内部的任何标记,就不会这样

            <html>
                <head>
                    <link rel="stylesheet" href="style.css">
                    <script type="text/javascript" src="jquery-1.8.2.min.js"></script>
                    <script type="text/javascript" src="d3.v2.min.js"></script>
                    <title>Bleech</title>
                </head>
            <body>
                <script type="text/javascript">
                    var dataset = [ 25, 7, 5, 26, 11, 8, 25, 14, 23, 19,
                            14, 11, 22, 29, 11, 13, 12, 17, 18, 10,
                            24, 18, 25, 9, 3 ];

                    d3.select("#chart").selectAll("p")
                                        .data(dataset)
                                        .enter()
                                        .append("div")
                                        .transition()
                                        .ease("linear")
                                        .attr("class", "bar")
                                        .duration(500)
                                        .style("height", function(d){
                                                return 10 * d;
                                            })
                                        .text(function(d){return d;});
                </script>

                <div id="chart"></div>

            </body>
            </html>

布莱赫
var数据集=[25,7,5,26,11,8,25,14,23,19,
14, 11, 22, 29, 11, 13, 12, 17, 18, 10,
24, 18, 25, 9, 3 ];
d3.选择(“图表”)。选择全部(“p”)
.数据(数据集)
.输入()
.附加(“div”)
.transition()
.ease(“线性”)
.attr(“类”、“条”)
.持续时间(500)
.样式(“高度”,功能(d){
返回10*d;
})
.text(函数(d){return d;});

我不知道d3,但是为什么要在div渲染之前调用这些方法呢?您可能希望将调用放在
窗口.onload
事件或jQuery
document.ready
(因为我看到您包含了库)中,如下所示:

$(document).ready(function () {
    var dataset = [ 25, 7, 5, 26, 11, 8, 25, 14, 23, 19, 14, 11, 22, 29, 11, 13, 12, 17, 18, 10, 24, 18, 25, 9, 3 ];
    d3.select("#chart").selectAll("p")
                       .data(dataset)
                       .enter()
                       .append("div")
                       .transition()
                       .ease("linear")
                       .attr("class", "bar")
                       .duration(500)
                       .style("height", function(d){
                               return 10 * d;
                           })
                       .text(function(d){return d;});
});

我不知道d3,但为什么在div渲染之前就调用这些方法呢?您可能希望将调用放在
窗口.onload
事件或jQuery
document.ready
(因为我看到您包含了库)中,如下所示:

$(document).ready(function () {
    var dataset = [ 25, 7, 5, 26, 11, 8, 25, 14, 23, 19, 14, 11, 22, 29, 11, 13, 12, 17, 18, 10, 24, 18, 25, 9, 3 ];
    d3.select("#chart").selectAll("p")
                       .data(dataset)
                       .enter()
                       .append("div")
                       .transition()
                       .ease("linear")
                       .attr("class", "bar")
                       .duration(500)
                       .style("height", function(d){
                               return 10 * d;
                           })
                       .text(function(d){return d;});
});

正如Ian所建议的那样,将d3/js代码包装在$document.ready函数中可以确保在加载页面后执行d3,但会增加需要jQuery的开销

另一种方法是简单地将行移到代码上方,这样可以使代码更简单

<div id="chart"></div>
<script type="text/javascript">
...
d3.select("#chart").selectAll("p")
...
</script> 

...
d3.选择(“图表”)。选择全部(“p”)
...

在Mike Bostock(D3的作者)的所有示例中,他都使用后者(即他不倾向于混合D3和jQuery)。

正如Ian所建议的那样,将D3/js代码包装在$document中。ready函数将确保在加载页面后执行D3,但确实增加了需要jQuery的开销

另一种方法是简单地将行移到代码上方,这样可以使代码更简单

<div id="chart"></div>
<script type="text/javascript">
...
d3.select("#chart").selectAll("p")
...
</script> 

...
d3.选择(“图表”)。选择全部(“p”)
...

在Mike Bostock(D3的作者)的所有示例中,他都使用后者(即他不倾向于混合D3和jQuery)。

我不知道
D3
,但为什么在div渲染之前就调用这些方法呢?你可能想把调用放在
窗口内。onload
eventah狗屎你说得对!!!你能提出一个答案吗?我不知道
d3
,但是为什么你要在div渲染之前调用这些方法呢?你可能想把调用放在
窗口内。onload
eventah狗屎你说得对!!!你能提出一个答案吗?