[英]HTMLCollection's length is 8 but logging any of its indices returns undefined?
[英]HTMLcollection 0 list length, [n] returns undefined, converting to an array returns an empty array
我正在使用傳單和 d3.js 制作大量 SVG 元素。 我有一個傳單地圖,下面有一些 div,然后是一個腳本元素,我在其中填充傳單地圖,添加來自 .json 文件的數據,然后嘗試將事件偵聽器綁定到下面添加和刪除的 div類到 svg 元素。 在嘗試構建<path>
元素的集合時,我已經通過它們進行迭代並將類添加到它們中,但在我的生活中,我無法讓 for 循環工作。
var lowlightGisUnfiltered = document.getElementById(mapDivId).getElementsByClassName("gisData");
console.log("unfiltered",lowlightGisUnfiltered, "length", lowlightGisUnfiltered.length);
var transfer = lowlightGisUnfiltered;
console.log("transfer:", transfer, "length:", transfer.length);
var llarray = Array.prototype.slice.call(lowlightGisUnfiltered);
console.log(llarray);
console.log(lowlightGisUnfiltered[1]);
console.log(transfer.item(1));
var lowlightGIS = [];
for(var n = 0; n < lowlightGisUnfilteredArray.length; n++){
console.log("test");
if(llarray[n].classList.contains(selectorClass)) {
lowlightGIS.push(lowlightGisUnfiltered[n])
}
}
這輸出:
所有這些代碼都在我制作動態標簽的 d3 和傳單 javascript 之下。
我已經檢查了所有其他處理類似問題的 HTMLcollection 或 NodeList 問題,但沒有找到解決方案。
編輯:我也試過 .querySelectorAll 但這只是返回一個空數組。
解決了我自己的問題:
我沒有意識到 d3.json 是異步的。 我的代碼在 d3.json 函數之外,所以顯然我的數據實際上沒有加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.