如何过滤数据,存储在jQuery变量中

时间:2013-02-20 02:04:33

标签: javascript jquery jquery-selectors filter

我有一个javascript变量来缓存选择器,如:

var listOfDefferedElements = $('div [id^="Defer"]');

在debugg视图中,我看到该列表的数据类似于以下内容:

listOfDefferedElements =
[
  <div id=​"DeferRed-1" class=​"Red Defer" title=​"Defer">​&nbsp;​</div>, 
  <div id=​"DeferGreen-3" class=​"Green Defer" title=​"Deffered">​&nbsp;​</div>, 
  <div id=​"DeferGreen-4" class=​"Green Defer" title=​"Defer">​&nbsp;​</div>​, 
  <div id=​"DeferBlue-6" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​,
  <div id=​"DeferBlue-7" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​, 
  <div id=​"DeferBlue-8" class=​"BlueDefer" title=​"Deffered">​&nbsp;​</div>, 
  <div id=​"DeferBlue-9" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​
]

我想知道如何使用存储过滤条件的变量

进一步按类过滤
var filter = "Blue"

在变量中需要这样的输出,最后我应该能够更改类'Defer' - &gt; '删除'。感谢任何帮助。

listOfFilteredElements =
[
 <div id=​"DeferBlue-6" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​,
 <div id=​"DeferBlue-7" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​, 
 <div id=​"DeferBlue-8" class=​"Blue Defer" title=​"Deffered">​&nbsp;​</div>, 
 <div id=​"DeferBlue-9" class=​"Blue Defer" title=​"Defer">​&nbsp;​</div>​
]

直到现在我试过这个,它会过滤包含“Blue”类的选择器:

var listOfFilteredElements  = _.filter(listOfDefferedElements, function(elem){
    return (elem.className).indexOf('Blue') >= 0;
});

现在可以有一个语句来更改/更新其中所有元素的类吗?

2 个答案:

答案 0 :(得分:2)

$("div[id^="Defer"]." + filter).removeClass('Defer').addClass('Delete');

http://jsfiddle.net/ExplosionPIlls/GvyAg/

由于jQuery方法将字符串作为选择器的参数,因此可以像普通字符串一样连接到它。 .是类选择器。

答案 1 :(得分:1)

$('listOfDefferedElements ').find('.blue');

或正如ExplosionPills所说的关于数据 - *使用那些。

像这样

标记:

<div id=​"DeferBlue-6" class=​"Defer" title=​"Defer" data-color="blue">​&nbsp;​</div>​,

Jquery的

var filterResult=$('div [data-color="blue"]');