0

2 つの配列があります。1 つは都市、もう 1 つは ID の配列です...両方をループしてから、HTML を出力したいと思います。

現在、都市をループしてから、次のように HTML を追加するだけです。

if ($jq(".area").length > 0) {

    var region = $jq(".hiddenFieldRegion").val();
    var cityIDs = $jq(".hiddenFieldChosenAreas").val();
    var strcities = $jq(".hiddenFieldChosenCities").val();
    //var cities = strcities.split('|');

    //Set region to be marked
    if (region) {
        $jq(".mapdk").attr("class", region);
    }

    //Appending to searchform
    if (strcities) {
        $jq.each(strcities.toString().split("|"), function (k, v) {
            var v = v.split("|");
            $jq("<option selected />").text(v[0]).appendTo("select.chosen-cities");
        });
    }

}

検索フォームに追加する場所が欲しいのですが、属性値を追加し、cityIDs 配列の ID を使用します...

だから私はいくつかのHTMLを取得します:

<option value="XXX">CityName</option>

それは可能ですか?

4

4 に答える 4

0

k順序が両方の配列で同じであると仮定すると、各関数のインデックス パラメーター ( ) を使用できます。

if (strcities) {
    var aCityIDs = cityIDs.split("|");
    $jq.each(strcities.toString().split("|"), function (k, v) {
        var v = v.split("|");
        var id = aCityIDs[k];
        $jq("<option selected value='"+id+"' />").text(v[0]).appendTo("select.chosen-cities");
    });
}
于 2012-07-05T08:23:43.653 に答える
0

都市 ID と都市名が同じ方法で順序付けられていると仮定すると、配列内のこのインデックスによって各名前/ID にアクセスできます。

var cityIDs = $jq(".hiddenFieldChosenAreas").val();
var strcities = $jq(".hiddenFieldChosenCities").val();

var cityIDs_array = cityIds.split("|");
var strcities_array = strcities.split("|");

....

if (strcities) {
    $jq.each(strcities_array, function (k, v) {
        //var v = v.split("|"); Unnecessary if strcities is like "city1|city2|city3"
        $jq("<option value='"+cityIDs_array[k]+"' />").text(v).appendTo("select.chosen-cities");
    });
}

このようにして、ループ内の各都市 ID にアクセスできます。
しかし、都市名と都市 ID を同じ文字列に格納する必要があると思います。たとえば"city1:1|city2:2|city3:3"。次に、split関数を使用して、ID と名前を取得します。

于 2012-07-05T08:25:04.043 に答える