使用$ .each的问题?
值salam & salavat值的数据库行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 =>这有“拖曳”结果,请点击每个结果: salam或salavat – >你看到点击后获得五个输出=> salam & mokhles & fadat | chaker & khobe (如果必须有三个值,因为我们点击了salam => salam & mokhles & fadat这个词)
第二 。 请插入值: salam =>这有一个结果,请点击结果( 萨拉姆 ) – >你看到点击后获得“三”输出=> salam & mokhles & fadat
我想在任何情况下都是结果搜索“五”或“三”值或“等等”,得到与点击的单词相关的值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事件,以便您可以使用每个项目的特定数据,或根据您单击的项目过滤数据。