第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

D3.js - 未捕獲類型錯(cuò)誤:.enter(...).append(...).merge 不是函數(shù)

D3.js - 未捕獲類型錯(cuò)誤:.enter(...).append(...).merge 不是函數(shù)

肥皂起泡泡 2023-12-14 15:19:11
我正在嘗試使用 d3.js 構(gòu)建一個(gè)具有多個(gè)嵌套下拉列表的表。當(dāng)我使用較新版本的 d3 時(shí),我的代碼工作得很好,但是由于各種原因,我需要使用 d3.js v3,當(dāng)我用舊版本替換新版本時(shí),我得到以下信息:Uncaught TypeError: options4.enter(...).append(...).merge is not a function我假設(shè)舊版本的 d3 沒(méi)有 merge() 函數(shù),但是我不知道用什么來(lái)替代它。這是我的代碼:<script src="https://d3js.org/d3.v3.min.js"></script>var colorScheme = d3.scale.ordinal()                .domain(["USA", "PRI", "CAN"])                .range(["#d52922", "#d69105", "#4b7ba1"]);var jobsCsvData = null;d3.csv("master_info_final_v12_conversion.csv", function(data) {data.forEach(function(d) {    d["index"] = d["index"];    d["name"] = d["name"];    d["city"] = d["city"];    d["state"] = d["state"];    d["country"] = d["country"];});JobsCsvData = data;var nestedTwo = d3.nest() .key(function(d) {  return d.country; }) .key(function(d) {  return d.state;}).key(function(d) {  return d.city;}).entries(data);function updateLocationValues(g) {  var filtered = filtered2[0].values.filter(function(d) {    return d.key == g;  });  var options5 = d3.select("#select5")    .selectAll("option")    .data(filtered[0].values.map(function(d) {    //.data(filtered3[0].values.map(function(d) {      return d.key;    }));  options5.exit().remove();這是 merge() 函數(shù)給我?guī)?lái)的問(wèn)題。  options5.enter()    .append("option")    .merge(options5)    .text(function(d) {      return d;    });    tabulate(data);  } var options5 = d3.select("#select5")   .selectAll("option")   .data(filtered3[0].values.map(function(d) {  return d.key;  }.)).enter()  .append("option")  .text(function(d) {  return d; });.... {more code}}如果這還不夠,我可以添加更多代碼。任何幫助將不勝感激。
查看完整描述

1 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

D3v3 神奇地將輸入選擇包含在更新選擇中,在幕后為您進(jìn)行合并。從 d3v4 開(kāi)始,您需要顯式合并輸入和更新。


要編碼合并更新并輸入 d3v3,您基本上只需刪除合并語(yǔ)句并在輸入所有內(nèi)容后使用更新選擇即可。代替:


var update = d3.selectAll("...").data(...);


enter = update.enter().append()....


update.merge(enter).attr(....

您可以簡(jiǎn)單地使用:


var update = d3.selectAll("...").data(...)


update.enter().append()....


update.attr(... // includes both enter and update.

本質(zhì)上,d3v4 的變化是選擇是不可變的,輸入選擇后不再神奇地添加到幕后的更新選擇中。然而,為了允許組合輸入和更新選擇,d3引入了selection.merge()通過(guò)組合兩者返回新選擇的方法。


以下是幾個(gè)片段,顯示了 d3v3(第一)與 d3v4+(第二)在每個(gè)步驟的每個(gè)選擇中的內(nèi)容:

var original = d3.selectAll("p")

  .data([1,2,3])

  .enter()

  .append("p")

  

original.append("span").text(d=>d);

  

// update selection pre enter.

var update = d3.selectAll("p")

  .data([1,2,3,4,5]) // two new elements.

  

  update.append("span")

    .text("  in update selection pre enter");

    

// enter selection.

var enter = update.enter()

  .append("p")

  

  enter.append("span").text(d=>d + " in enter selection");

  

// update post-enter.

update.append("span").text(" | in update selection after enter");

p {

  border: 1px dotted black;

  padding: 4px;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>

var original = d3.selectAll("p")

  .data([1,2,3])

  .enter()

  .append("p")

  

original.append("span").text(d=>d);

  

// update selection pre enter.

var update = d3.selectAll("p")

  .data([1,2,3,4,5]) // two new elements.

  

  update.append("span")

    .text("  in update selection pre enter");

    

// enter selection.

var enter = update.enter()

  .append("p")

  

  enter.append("span").text(d=>d + " in enter selection");

  

// update post-enter.

update.append("span").text(" | in update selection after enter");


// merge:

update.merge(enter).append("span").text(" | in merged selection ");

p {

  border: 1px dotted black;

  padding: 4px;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>


查看完整回答
反對(duì) 回復(fù) 2023-12-14
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)