1

我在 js 中有一个这样的 var:

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>"

你知道该怎么做吗?

非常感谢 !

4

3 回答 3

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();
于 2013-09-12T18:54:46.917 回答
3

您最好将其保留为一组 jQuery 元素:

var $options = $(string);

然后使用 jQuery 方法得到你想要的:

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

http://jsfiddle.net/alnitak/7ThYU/

于 2013-09-12T18:54:43.120 回答
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();
于 2013-09-12T18:56:56.857 回答