我有一个 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
}
我不断得到一个空数组。
慕容3067478
尚方宝剑之说
相关分类