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可能是我的错误,也许这是不可能的),但这个工程确定....