d3笔记(1) - d3元素选择器及数据绑定的理解

本文通过实例展示了如何使用D3.js进行数据绑定和元素选择,深入理解D3.js如何操作DOM元素,将数据与视图绑定,实现动态更新。代码示例包括表格创建、数据填充以及控制台输出,帮助读者掌握D3.js的核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下贴出代码,读者可以通过控制台输出体会选择器和数据绑定。

<!doctype html>
<html>
<head>
    <script src="d3.js"></script>
</head>
<body>
	<div><p></p><p></p><p></p><p></p></div>
	<div><p></p><p></p><p></p><p></p></div>
	<div><p></p><p></p><p></p><p></p></div>
	<div><p></p><p></p><p></p><p></p></div>
	
    <script>
        var matrix = [
                        [1, 2, 3, 4],
                        [5, 6, 7, 8],
                        [9, 10, 11, 12],
                        [13, 14, 15, 16]
                    ];

        var tr = d3.select("body")
            .append("table")  // adds <table>
            .selectAll("tr")  // selects all <tr>
            .data(matrix)      // joins matrix array 
            .enter()           // create placeholders for each row in the array
            .append("tr");// create <tr> in each placeholder

        var td = tr.selectAll("td")
            .data(function (d) {    // joins inner array of each row
                console.log(this);
                return d;
            })
            .enter()    // create placeholders for each element in an inner array
            .append("td") // creates <td> in each placeholder
            .text(function (d) {
                console.log(d);
                return d; // add value of each inner array as a text in <td>
            });
		
		//由以下几句体会数据绑定
		var div = d3.selectAll("div")
		            .data(matrix)
					.attr("width", function(d){console.log(this); console.log("current ele data:", d)});
		
		console.log(div);
		
		var p = div.selectAll("p");
		
		p.data(function(d){console.log(this); console.log(d); return d;}).text(function(d){console.log(this); return d;});
    </script>
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值