使用$ .each的问题?

salamsalavat值的数据库行units :[ json_encode()插入的此值]

萨拉姆:

[{ “name_units”: “萨拉姆”, “price_units”: “74554”, “checkbox_units”:[ “迷你吧”, “mobleman”]},{ “name_units”: “mokhles”, “price_units”: “4851269”, “checkbox_units”:[ “mobleman”, “电视”]},{ “name_units”: “fadat”, “price_units”: “85642”, “checkbox_units”:[ “迷你吧”, “mobleman”, “电视”]} ]

塞利克巴:

[{ “name_units”: “chaker”, “price_units”: “5452”, “checkbox_units”:空},{ “name_units”: “khobe”, “price_units”: “5452545”, “checkbox_units”:[ “迷你吧” “mobleman”]}]

在示例中,执行以下操作:

示例: DEMO1-在这里工作我的代码和DEMO2-in这里只是用于显示所有代码

首先 请插入值: sala in input =>这有“拖曳”结果,请点击每个结果: salamsalavat – >你看到点击后获得五个输出=> salammokhlesfadat | chakerkhobe (如果必须有三个值,因为我们点击了salam => salammokhlesfadat这个词)

第二 。 请插入值: salam =>这有一个结果,请点击结果( 萨拉姆 ) – >你看到点击后获得“三”输出=> salammokhlesfadat

我想在任何情况下都是结果搜索“五”或“三”值或“等等”,得到与点击的单词相关的值name_units

 $('.auto_complete').keyup(function () { var dataObj = $(this).closest('form').serialize(); $.ajax({ type: "POST", dataType: 'json', //url: 'http://binboy.gigfa.com/admin/tour_foreign/auto_complete', url: 'auto_complete', data: dataObj, cache: false, success: function (data) { var id_name = $('.list_autobox_hotel').attr('id'); $('.list_autobox_hotel').show().html(''); if (data == 0) { $('.list_autobox_hotel').show().html('

there is no

'); } else { $.each(data, function (index, value) { $('

' + value.name + '

').appendTo('.list_autobox_hotel'); }); //////////////////////*HERE////////////////////// $('.list_autobox_hotel p').click(function (e) { e.preventDefault(); var ac = $(this).attr('id'); $.each(data, function (index, value) { $.each(value.units, function (bu, key) { alert(key.name_units); }); }); $(this).remove(); return false; }); //////////////////////HERE*////////////////////// $('body').click(function () { $(".list_autobox_hotel p").hide().remove(); $('.auto_complete').val(''); $('.list_autobox_hotel').show().html(''); $('.list_autobox_hotel').css('display', 'none'); }); } }, "error": function (x, y, z) { // callback to run if an error occurs alert("An error has occured:\n" + x + "\n" + y + "\n" + z); } }); });

更新:

对于bin我做到了:(但这不起作用,仍然存在同样的问题)

 $('.list_autobox_hotel p').bind("click", function (e) { e.preventDefault(); var ac = $(this).attr('id'); $.each(data, function (index, value) { $.each(value.units, function (bu, key) { alert(key.name_units); }); }); $(this).remove(); return false; }); 

我不明白"filter the data depending on what item you click on" ,不知道它是怎么回事!?

更新2

这是真的吗? (但这不起作用,有警报: undefined

 $('.list_autobox_hotel p').bind("click", function (e) { e.preventDefault(); var ac = $(this).attr('id'); var ok = $.grep(data, function (e) { return e.name == ac; }).units; alert(ok); $(this).remove(); return false; }); 

这是因为您的代码不关心您单击哪个项目,它始终显示所有数据。

您应该在添加项目的循环内绑定click事件,以便您可以使用每个项目的特定数据,或根据您单击的项目过滤数据。