[英]Adding extra values to JS Object
好的,我有一個包含所需數據的HTML列表。 看起來像這樣
ul
li[data-trainer]>trainee
li[data-trainer]>trainee
li[data-trainer]>trainee
我對其進行迭代,並想要制作一個看起來像這樣的對象
{
"Trainer":{0:Trainee1},
"Trainer2":{1:Trainee2,2:Trainee3,3:Trainee4}
}
我嘗試了這個,還有更多
var Data = new Object();
var i = 0;
$(".blah-blah-ul li.active").each(function(){
i++;
var trainer = $(this).attr("data-trainer");
var trainee = $(this).text();
Data[trainer] = {};
Data[trainer][i] = trainee;
})
console.log(Data);
Data[trainer][i] = trainee
只剩下列表中的最后一個見習生。
來自console.log的數據:
Object
Trainer1: Object
2: Trainee2
Trainer3: Object
4: Trainee6
我嘗試制作一個數組,並使用push或制作一個字符串,但這沒有用。
如果有人可以建議合適的解決方案,將不勝感激。
這是HTML
<ul class="blah-blah-ul">
<li class="active" data-trainer="Trainer1">Trainee1</li>
<li class="active" data-trainer="Trainer1">Trainee2</li>
<li data-trainer="Trainer2">Trainee3</li>
<li data-trainer="Trainer2">Trainee4</li>
<li class="active" data-trainer="Trainer3">Trainee5</li>
<li class="active" data-trainer="Trainer3">Trainee6</li>
</ul>
您的問題是,要為數組中的元素分配多個值,子元素必須是數組。 這允許將多個Trainee
添加到Data
對象中的“ Trainer
項。
var Data = new Object(); var i = 0; $(".blah-blah-ul li.active").each(function(){ i++; var trainer = $(this).attr("data-trainer"); var trainee = $(this).text(); if(typeof Data[trainer] === 'undefined') { Data[trainer] = {}; } Data[trainer][i] = {trainee}; }) console.log(Data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="blah-blah-ul"> <li class="active" data-trainer="Trainer1">Trainee1</li> <li class="active" data-trainer="Trainer1">Trainee2</li> <li data-trainer="Trainer2">Trainee3</li> <li data-trainer="Trainer2">Trainee4</li> <li class="active" data-trainer="Trainer3">Trainee5</li> <li class="active" data-trainer="Trainer3">Trainee6</li> </ul>
有關使用Push的Javascript數組的文檔,請參見w3schools
var Data = {};
var i = 0;
$(".blah-blah-ul li.active").each(function(){
i++;
var trainer = $(this).attr("data-trainer");
var trainee = $(this).text();
Data[trainer] = {};
Data[trainer][i] = trainee;
})
console.log(Data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.