第一夜-enter與exit

d3.js在綁定數(shù)據(jù)后,一般會看到enterexit兩個函數(shù)。那它們到底是做什么用的呢?直接看一下代碼和效果:

既然是JavaScript的框架,我們就用一個HTML文檔作為測試的起點。

<html>
    <head>
        <meta charset="utf-8">
        <title>d3.js Test</title>
    </head>
    <body>
        <p>原始數(shù)據(jù):1</p>
        <p>原始數(shù)據(jù):2</p>
        <script type="text/javascript" src="./d3/d3.js"></script>
        <script type="text/javascript">
              //JS代碼所在位置
        </script>
        
    </body>
</html>

1 .當DOM中元素多于所綁定的數(shù)據(jù)個數(shù)時,使用enter配合append函數(shù)可以給文檔添加缺少的元素。

var ds = [1, 2, 3, 4, 5];

var body = d3.select('body'); //選擇body節(jié)點
body.selectAll('p')
        .data(ds)
        .enter()
        .append('p')
        .text(function(d) {
            return "數(shù)據(jù):" + d;
        });

結果HTML為:

<html>
    <head>
        <meta charset="utf-8">
        <title>d3.js Test</title>
    </head>
    <body>
        <p>原始數(shù)據(jù):1</p>
        <p>原始數(shù)據(jù):2</p>
        <script type="text/javascript" src="./d3/d3.js"></script>
        <script type="text/javascript">
        var ds = [1, 2, 3, 4, 5];

        var body = d3.select('body'); //選擇body節(jié)點
        body.selectAll('p')     //選擇所有p標簽
                .data(ds)       //綁定數(shù)據(jù)集
                .enter()        
                .append('p')
                .text(function(d) {
                    return '數(shù)據(jù):' + d;
                });
        </script>
        
    </body>
</html>

2 . exit函數(shù)配合remove則剛好相反,能夠把多于數(shù)據(jù)集的部分從文檔中移除。

var ds = [1];

var body = d3.select('body'); //選擇body節(jié)點
body.selectAll('p')     //選擇所有p標簽
        .data(ds)       //綁定數(shù)據(jù)集
        .exit()     
        .remove();

結果HTML文檔為:

<html>
    <head>
        <meta charset="utf-8">
        <title>d3.js Test</title>
    </head>
    <body>
        <p>原始數(shù)據(jù):1</p>
        <script type="text/javascript" src="./d3/d3.js"></script>
        <script type="text/javascript">
        var ds = [1];

        var body = d3.select('body'); //選擇body節(jié)點
        body.selectAll('p')     //選擇所有p標簽
                .data(ds)       //綁定數(shù)據(jù)集
                .exit()     
                .remove();
        </script>
    </body>
</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容