我有一個 for 循環,它循環使用 jquery 選擇器收集的一些 html 元素,并從中提取一些文本或值。每個循環都會創建一個新對象。對象很簡單,它只是文本和一個值。Console.log 確認每個循環都成功創建了對象。在 for 循環之外,我有一個初始化為數組的變量 (kvObjs)。在 for 循環結束時,我將新對象推送到數組中。但是 console.log 確認數組保持為空。這是一段較大代碼的一部分。這似乎是不起作用的部分。不工作的特定函數是 getKVs(),好吧,除了試圖將對象推送到數組上的部分之外,它可以工作。我向你保證,我瀏覽了所有或幾乎所有的“類似問題”,但沒有任何反應。不過,我可能錯過了其中的某些內容。我覺得我忽略了一些明顯的東西。我試圖手動創建一個數組 (var x = ["bob", "steve", "frank"]) 然后設置另一個等于它的變量 (var y = x) 并且這似乎有效。我什至創建了一個對象數組,如 var x = [{"Key":"Bob","Value":10}, {"Key":"Steve","Value":5}],我認為這對。但我的 for 循環沒有。<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><style> .Jobs { width: 300px; margin: 0 auto; } .Jobs li { display: grid; grid-template-columns: 1fr 50px; padding: 2px 5px 2px 7px; align-items: center; } .Jobs .value { text-align: right; } .Jobs p.value { padding-right: 7px; } .even { background-color: rgba(0,0,0,0.2); }</style><div class="Jobs"> <ul> <li class="kvp"> <p class="key">Bob</p> <input class="value" type="number" value="3"/> </li> <li class="kvp even"> <p class="key">Frank</p> <input class="value" type="number" value="2"/> </li> <li class="kvp"> <p class="key">Tom</p> <input class="value" type="number" value="8"/> </li> <li class="kvp total even"> <p class="key">Total</p> <p class="value">13</p> </li> </ul></div><script> class KV { constructor(key, value) { this.Key = key; this.Value = value; } } function getKVs(type) { type = "." + type + " .kvp"; var elmts = $(type); var kvObjs = []; for (var i = 0; i < elmts.length; i++) { var elmt = $(elmts[i]); if(elmt.hasClass("total")) { // do nothing } 我不斷得到一個空數組。
Javascript push() 函數沒有將對象添加到數組中
蠱毒傳說
2021-10-14 17:20:15