从分隔字符串中读取数据以创建选择元素

时间:2012-07-10 13:37:50

标签: javascript jquery select

我有一个字符串:

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

我用x,y&替换了实际值ž

它由;分隔,然后|

分隔

我想拥有的是

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

我不需要获取y值。

不知道怎么做!任何想法都会很棒!感谢。

3 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分: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>');
});
​

答案 2 :(得分:0)

使用一个正则表达式在|y|;上拆分的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;
}