Я пытаюсь показать значения json в раскрывающемся списке, показанном внутри таблицы.Мое значение JSON может быть таким, как показано ниже:
var ids1 = [{"pid":"23221","des":"2321"},{"pid":"1301","des":"1301"},{"pid":"1003","des":"1003"}]
var ids = [{"pid":"laptop","des":"laptop"},{"pid":"IPAD mini.","des":"IPAD mini."}]
Это могут быть числа, как показано в ids1 , или могут быть строковые значения, как показано в ids , или могутbe может получить комбинацию.
Когда я использую приведенный ниже код, значения в раскрывающемся списке отображаются в кавычках .
$("<option />").text(JSON.stringify(value.des)).val(JSON.stringify(value.pid)).appendTo(productDropdown);
При использованиипод кодом, отображающим значения в раскрывающемся списке, кавычки не отображаются для целочисленных значений, показанных в ids1, но при попытке передать идентификаторы и показать в списке возникает исключение.
$("<option />").text(JSON.parse(value.des)).val(JSON.parse(value.pid)).appendTo(productDropdown);
Исключение припытается передать идентификаторы в цикле.
Uncaught SyntaxError: Unexpected token l in JSON at position 0
Демонстрационная ссылка: http://plnkr.co/edit/ilvGQPiy3nEKBuH8q46b?p=preview
js код:
function populateSelect(ids) {
var ids1 = [{"pid":"23221","des":"2321"},{"pid":"1301","des":"1301"},{"pid":"1003","des":"1003"}]
var ids = [{"pid":"laptop","des":"laptop"},{"pid":"IPAD mini.","des":"IPAD mini."}]
var productDropdown = $(".product");
$.each(ids, function(index,value) {
$("<option />").text(JSON.parse(value.des)).val(JSON.parse(value.pid)).appendTo(productDropdown);
// $("<option />").text(JSON.stringify(value.des)).val(JSON.stringify(value.pid)).appendTo(productDropdown);
});
}
$(document).ready(function(){
populateSelect();
});