d3.js - How to show all data elements using D3 and Bootstrap? -
just started d3 , html below supposed show vertical bars per array (5 bars) instead shows 3 bars.
<!doctype html> <html> <head lang="en"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link rel="stylesheet" href="css/bootstrap.min.css"/> <style type="text/css"> div.bar { display: inline-block; width: 20px; height: 75px; background-color: teal; } </style> </head> <body> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapse" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">d3</a> </div> </div> </nav> <script type="text/javascript" src="js/d3.js"></script> <script type="text/javascript"> var dataset = [5, 10, 15, 20, 25]; d3.select("body") .selectall("div") .data(dataset) .enter() .append("div") .attr("class", "bar"); </script> </body> </html> however, if move <script>...</script> before nav, see correct number of bars (5). performance reasons maintain original order , yet resolved. ideas?
in current implementation, when call selectall("div"), resulting selection contains 2 <div> elements present in dom (class container , class navbar-header). first 2 data values (5 , 10) associated 2 <div> elements. remaining 3 data values (15, 20, , 25) values in enter() selection.
an easy fix use selectall("div.bar") instead, though might want re-read d3.js documentation better understand why original code wrong.
Comments
Post a Comment