连接Jquery中的变量



我有这个jQuery代码,它可以工作。但丑陋:

var origin = "";
$.each(json, function(i,o){
    origin += "<option value="+o.city_id+">"+o.city_name+"</option><option value="+o.province_id+">"+o.province+"</option><option value="Indonesia">"Indonesia"</option>";
});
$("#product_seg_area").append(origin);

然后我决定清理代码,这样它看起来更干净:

var origin = "";
$.each(json, function(i,o){
    var seg_city += "<option value="+o.city_id+">"+o.city_name+"</option>";
    var seg_province += "<option value="+o.province_id+">"+o.province+"</option>";
    var seg_country += "<option value="Indonesia">"Indonesia"</option>";
    origin = seg_city + seg_province + seg_country;
});
$("#product_seg_area").append(origin);

但似乎将3个变量连接到一个变量会使我的代码停止工作。我错过了什么?

$.each(json, function(i,o){
    var seg_city += "<option value="+o.city_id+">"+o.city_name+"</option>";
    var seg_province += "<option value="+o.province_id+">"+o.province+"</option>";
    var seg_country += "<option value="Indonesia">"Indonesia"</option>";
    origin = seg_city + seg_province + seg_country;
});

问题是未定义seg_city。在第一轮中,您尝试将html与undefined连接起来。所以你的代码弯下腰了。

为了让它发挥作用,

var seg_city, seg_country, seg_province;
$.each(json, function(i,o){
        seg_city = "<option value="+o.city_id+">"+o.city_name+"</option>";
        seg_province = "<option value="+o.province_id+">"+o.province+"</option>";
        seg_country = "<option value="Indonesia">"Indonesia"</option>";
        origin = seg_city + seg_province + seg_country;
    });

试试这个。。。。

var origin = "";
$.each(json, function(i,o){
    var seg_city = "<option value='"+o.city_id+"'>"+o.city_name+"</option>";
    var seg_province = "<option value='"+o.province_id+"'>"+o.province+"</option>";
    var seg_country = "<option value='Indonesia'>"Indonesia"</option>";
    origin += seg_city + seg_province + seg_country;
});
$("#product_seg_area").append(origin);

您需要将此行从:

origin = seg_city + seg_province + seg_country;

origin += seg_city + seg_province + seg_country;