我有一個複選框列表在我的html頁面,就像這樣:如何更新基於JSON數據的清單上的HTML項的列表
<ul id="myList">
<li class="checkboxItem">
<input type="checkbox" name="item1" value="001" id="item-1"/>
<label for="item-1" class="checkboxLabel">Display 1</label>
</li>
<li class="checkboxItem">
<input type="checkbox" name="item2" value="042" id="item-2"/>
<label for="item-2" class="checkboxLabel">Display 42</label>
</li>
</ul>
我現在撥打電話得到一些JSON數據,這回來,像這樣:
[{"name":"002","title":"Display 1"}]
我想要做的是循環返回的JSON和更新複選框的列表,使得任何項目未在返回列表中被禁用,那些標題給定的標籤相匹配,輸入值被更新。
所以在這個例子中,ITEM2將禁用和物品1將其值更新爲002
這裏是我到目前爲止,我不太知道從哪裏何去何從,這是什麼在循環內部完成。我確實對json的返回有一定的控制,所以如果以另一種格式重新調用json是有意義的,我可以做到這一點。
編輯,更新了功能,見下文。然而,一旦我進入每個函數內部的for循環,elem得到的值是「0」而不是js對象,例如: {「name」:「002」,「title」:「Display 1」} 。明確的數據正在從功能的外部範圍轉移到每個功能的內部範圍,但是我該如何實現這一點?
function(data) {
$('#myList').children('li').each(function(i,e) {
for(var elem in data) {
var elemDescr = elem['title'];
var elemName = elem['name'];
if(elemDescr==$(this).find('.checkboxLabel').text()) {
$(this).find('input').attr('value',elemName);
}
}
});