我有一个javascript变量来缓存选择器,如:
var listOfDefferedElements = $('div [id^="Defer"]');
在debugg视图中,我看到该列表的数据类似于以下内容:
listOfDefferedElements =
[
<div id="DeferRed-1" class="Red Defer" title="Defer"> </div>,
<div id="DeferGreen-3" class="Green Defer" title="Deffered"> </div>,
<div id="DeferGreen-4" class="Green Defer" title="Defer"> </div>,
<div id="DeferBlue-6" class="Blue Defer" title="Defer"> </div>,
<div id="DeferBlue-7" class="Blue Defer" title="Defer"> </div>,
<div id="DeferBlue-8" class="BlueDefer" title="Deffered"> </div>,
<div id="DeferBlue-9" class="Blue Defer" title="Defer"> </div>
]
我想知道如何使用存储过滤条件的变量
进一步按类过滤var filter = "Blue"
在变量中需要这样的输出,最后我应该能够更改类'Defer' - &gt; '删除'。感谢任何帮助。
listOfFilteredElements =
[
<div id="DeferBlue-6" class="Blue Defer" title="Defer"> </div>,
<div id="DeferBlue-7" class="Blue Defer" title="Defer"> </div>,
<div id="DeferBlue-8" class="Blue Defer" title="Deffered"> </div>,
<div id="DeferBlue-9" class="Blue Defer" title="Defer"> </div>
]
直到现在我试过这个,它会过滤包含“Blue”类的选择器:
var listOfFilteredElements = _.filter(listOfDefferedElements, function(elem){
return (elem.className).indexOf('Blue') >= 0;
});
现在可以有一个语句来更改/更新其中所有元素的类吗?
答案 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"> </div>,
Jquery的
var filterResult=$('div [data-color="blue"]');