jquery json select - 为整个json元素设置一个选择选项,而不仅仅是一个值

jquery json select - 为整个json元素设置一个选择选项,而不仅仅是一个值

问题描述:

我正在通过一个json javascript对象来为select创建选项。它的工作原理确定,如果我用1元,像这样(这是我从Ajax调用“成功” ......正从PHP数据)...jquery json select - 为整个json元素设置一个选择选项,而不仅仅是一个值

var my_json = JSON.parse(data); 
for (var a=0; a < my_json.length; a++) 
{ 
$('#my_list') 
.append($('<option', { value: my_json[a].SOMEFIELD }) 
.text(my_json[a].SOMEOTHERFIELD)); 
} 

这工作正常,但不是将该值设置为仅1场,我想设置:

value: my_json[a] 

,并通过6个或7个领域作为选项值... - 问题是,在选择我的onclick功能,我可以得到VAL从选择并看到它是一个对象,但试图让任何领域似乎是未定义的...
passed_data = $('#my_list')。val();
var passed_id = passed_data [0] .ID;
并尝试...
var passed_id - passed_data [ID];
等等......他们在不确定....
我可以看到“passed_data”是一个对象,但似乎无法得到任何领域出来的......

这是非常mmuch不可读,请编辑并点击“代码”按钮。

无论如何,从我读过,我不知道这是否会解决你的问题,但使用$.each是更好的,我相信:

var my_json = JSON.parse(data); 
$.each(my_json, function(){ 
    $('#my_list').append($(this).SOMETHING); 
}); 

如果我得到你想说什么,你需要一个选择在值中有多个值?如果是这种情况,我会建议将自定义属性添加到您选择的每个项目中,然后只读取它们。像下面这样:

$("#SelectBox").append($("<option />").val("OriginalValue").text("RandomText").attr("CustomAttribute","CustomAttributesValue")); 

要检索的自定义属性,你可以做这样的:

$("#SelectBox").change(function() { 
    alert($(this).find("option:selected").attr("CustomAttribute")); 
}); 

这将返回CustomAttribute每个选择项。

希望这可以帮助,这是你问的。如果不是,你能否澄清这个问题?

感谢

编辑:这样做可能会破坏页面的DOCTYPE这意味着该页面的XML是不正确的。你可以修改它并添加你的自定义属性。你的页面会一直渲染(不要误解我的意思),但它是无效的。 Check this out 如果你关心的XML是正确的

谢谢你们。我最终将选项的值设置为a(我在for循环中的计数器变量)。然后我做了全球性的var my_json。这样一来,在我的选择的onchange功能,我只是做:

var passed_element_number = ($'#my_select_list').val(); 
var passed_id = my_json[passed_element_number].ID; 
var passed_otherfield = my_json[passed_element_number].OTHERFIELD; 

我不知道为什么没有让我设置谁JSON对象作为选择选项的值,然后获得出1(1可能是我的错误,也许这是不可能的),但这个工程确定....