Rumah > hujung hadapan web > tutorial js > Mengapa Gunakan `selectAll(null)` dalam D3.js?

Mengapa Gunakan `selectAll(null)` dalam D3.js?

Linda Hamilton
Lepaskan: 2024-11-03 20:53:29
asal
574 orang telah melayarinya

Why Use `selectAll(null)` in D3.js?

Memilih nol: Logik Di Sebalik selectAll(null) dalam D3.js

Dalam D3.js, anda mungkin menemui kod seperti ini untuk menambah elemen DOM:

var circles = svg.selectAll(null)
    .data(data)
    .enter()
    .append("circle");
Salin selepas log masuk

Walaupun biasa untuk memilih elemen tertentu, seperti "bulatan," "p," atau ".foo," memilih "null" mungkin kelihatan membingungkan. Walau bagaimanapun, teknik ini memastikan bahawa pemilihan "masuk" sentiasa sepadan dengan tatasusunan data, dengan satu elemen untuk setiap titik data.

Pilihan "Enter"

Pilihan "masuk" terdiri daripada elemen data yang tidak mempunyai elemen DOM yang sepadan. D3.js membenarkan data mengikat kepada elemen DOM sedia ada. Walau bagaimanapun, jika terdapat lebih banyak titik data daripada elemen DOM, lebihan titik data tergolong dalam pilihan "masuk". Menggunakan fungsi "tambah" pada pemilihan ini mencipta elemen DOM baharu, mengikat data padanya.

Mengikat Data kepada Elemen Sedia Ada

Secara tradisinya, memilih elemen untuk pengikatan kelihatan seperti ini:

var circles = svg.selectAll("circle")
    .data(data);

circles.enter()
.append("circle");
Salin selepas log masuk

Pendekatan ini mencipta pilihan "kemas kini" untuk elemen bulatan sedia ada, manakala pemilihan "masuk" mengendalikan titik data tanpa elemen yang sepadan.

Walau bagaimanapun, tidak kira sama ada terdapat elemen sedia ada, selectAll(null) mengembalikan pilihan yang mewakili keseluruhan tatasusunan data. Ini memastikan bahawa pilihan "masuk" akan sentiasa mengandungi set data yang lengkap, tanpa mengira keadaan DOM.

Contoh

Untuk menggambarkan konsep ini, pertimbangkan contoh berikut:

var body = d3.select("body");
var data = ["red", "blue", "green"];
var p = body.selectAll("p")
  .data(data)
  .enter()
  .append("p")
  .text(d=> "I am a " + d + " paragraph!")
  .style("color", String);
Salin selepas log masuk

Walaupun tiada

elemen pada mulanya, selectAll(null) memastikan bahawa pemilihan "enter" mengandungi semua titik data dan perenggan dibuat untuknya dengan sewajarnya.

Ringkasnya, selectAll(null) menyediakan mekanisme yang konsisten untuk memastikan "enter" " pemilihan sentiasa sejajar dengan tatasusunan data, menjadikan data mengikat secara mudah tanpa mengira keadaan DOM.

Atas ialah kandungan terperinci Mengapa Gunakan `selectAll(null)` dalam D3.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan