我有一个字符串:
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
值。
不知道怎么做!任何想法都会很棒!感谢。
答案 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;
}