Во-первых, ваша структура данных не JSON. Это массив объектов. Это могло повлиять на исследование, которое вы сделали.
Во-вторых, в объекте нет свойства Filippa
, но я предполагаю, что это просто ошибка при расшифровке кода в вопросе, поэтому я добавил его в следующем примере.
Чтобы решить вашу проблему, вы можете l oop через массив и увеличить значение в соответствующем span
на основе значения model
в объекте. Попробуйте это:
productList.Filippa.forEach(o => $('#' + o.model).siblings('span').text((i, t) => (parseInt(t, 10) || 0) + 1));
Полный рабочий пример:
var productList = {
Filippa: [{
"model": "halvskap",
"modelname": "Halvskåp",
"type": "Standard",
"typename": "Standard",
"family": "Berlin"
}, {
"model": "helskap",
"modelname": "Helskåp",
"type": "Parskap",
"typename": "Parskap",
"family": "Copenhagen"
}, {
"model": "helskap",
"modelname": "Helskåp",
"type": "Parskap",
"typename": "Parskap",
"family": "Copenhagen"
}, {
"model": "smafackskap",
"modelname": "Småfackskåp",
"type": "Standard",
"typename": "Standard",
"family": "Filippa"
}]
}
productList.Filippa.forEach(o => $('#' + o.model).siblings('span').text((i, t) => (parseInt(t, 10) || 0) + 1));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dropdown">
<div>
<input type="radio" name="model" id="halvskap" value="halvskap">
<label>Halvskåp</label>
(<span>0</span>)
</div>
<div>
<input type="radio" name="model" id="helskap" value="helskap">
<label>Helskåp</label>
(<span>0</span>)
</div>
<div>
<input type="radio" name="model" id="smafackskap" value="smafackskap">
<label>Småfackskåp</label>
(<span>0</span>)
</div>
<div>
<input type="radio" name="model" id="zskap" value="zskap">
<label>Z-skåp</label>
(<span>0</span>)
</div>
</div>