解析/使用大量选择过滤一个javascript字符串

时间:2013-09-12 18:52:02

标签: javascript jquery

我有一个像这样的变量:

var string = 
"<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="1">D</option>
<option value="2">E</option>
<option value="3">F</option>
<option value="1">G</option>
<option value="2">H</option>
<option value="3">I</option>
<option value="1">K</option>
<option value="2">L</option>
<option value="3">M</option>"

我想创建一个解析它/做一个过滤器的代码,以便保留一个新的var only选项,其中val = value我选择。

因此,我想获得的值为值= 1的结果如下:

"<option value="1">A</option>
<option value="1">D</option>
<option value="1">G</option>
<option value="1">K</option>"

你知道怎么做吗?

非常感谢!

3 个答案:

答案 0 :(得分:6)

您可以将字符串传递给jQuery并使用.filter()方法。

var filteredElements = $(string).filter('[value=1]');

如果您想要元素的字符串表示:

var filteredString = $('<select/>').html(string).find('option').filter(function() {
    return this.value !== '1';
}).remove().end().end().html();

答案 1 :(得分:3)

你最好把它作为一组jQuery元素保存:

var $options = $(string);

然后使用jQuery方法获取你想要的那些:

var $wanted = $options.filter(function() {
    return this.value == 1;
});

请参阅http://jsfiddle.net/alnitak/7ThYU/

答案 2 :(得分:1)

试试这个。

var string = 
"<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="1">D</option>
<option value="2">E</option>
<option value="3">F</option>
<option value="1">G</option>
<option value="2">H</option>
<option value="3">I</option>
<option value="1">K</option>
<option value="2">L</option>
<option value="3">M</option>"


var elements = $(string);
var requiredelements = elements.filter("option[value=1]").html();