0

私は文字列を持っています:

x|y|z;x|y|z;x|y|z;x|y|z;

実際の値をx、y、zに置き換えました

それはによって区切られ;、その後|

私が欲しいのは

<select>
    <option>x z</option>
    <option>x z</option>
    <option>x z</option>
    <option>x z</option>
</select>

値を取得する必要はありませんy

これを行う方法の手がかりはありません!どんなアイデアでも素晴らしいでしょう!ありがとう。

4

3 に答える 3

5

まず、文字列を文字に分割して;、xyzの組み合わせの配列を作成します。

var arr = str.split(";");
arr.pop(); // remove the last item:
           // your example has a trailing `;` which adds an empty item

|次に、個別のxyz値を取得するために、文字の各組み合わせを分割します。次に、これらの値を使用して<option>要素を作成できます。

// loop the array
$.each(arr, function() {
  var values = this.split("|");
  // ignore values[1], that's the y value
  $("<option>").text(values[0] + " " + values[2]).appendTo("select");
});
于 2012-07-10T13:41:00.587 に答える
0

http://jsfiddle.net/bfRyW/お 役に立てば幸いです。

var string = 'x|y|z;x|y|z;x|y|z;x|y|z;';

var split1 = string.split(';');
split1.pop();

$.each(split1,function(index,value){
    var a = value.split('|');
    $('select').append('<option>'+a[0]+' '+a[2]+'</option>');
});
​
于 2012-07-10T13:44:20.587 に答える
0

|y|1つの正規表現を使用して両方で分割するPOJSソリューション;は次のとおりです。

function genSelect(s) {
  var arr = s.split(/\|y\||;/);
  var sel = document.createElement('select');
  var t;

  for (var i=0, iLen=arr.length; i<iLen; i++) {
    t = arr[i] + ' ' + arr[++i];
    sel.appendChild(new Option(t, t));
  }

  return sel;
}
于 2012-07-10T13:52:11.413 に答える