2

次のようなセレクターをキャッシュするJavaScript変数があります。

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

デバッグ ビューで、リストに以下のようなデータがあることがわかります。

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

フィルター条件を格納する変数を使用して、クラスごとにこれをさらにフィルター処理する方法を知りたい

var filter = "Blue"

変数にこのような出力が必要で、最終的にクラス 'Defer' -> 'Delete' を変更できるはずです。どんな助けにも感謝します。

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

これまで試してみましたが、クラス「Blue」を含むセレクターをフィルタリングします。

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

クラス内のすべての要素のクラスを変更/更新するステートメントを 1 つ持つことができますか?

4

2 に答える 2

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

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

jQueryメソッドはセレクターの引数として文字列を受け取るため、通常の文字列のように文字列に連結できます。 .クラスセレクターです。

于 2013-02-20T02:13:36.603 に答える
1
$('listOfDefferedElements ').find('.blue');

または ExplosionPills が data-* について述べたように、それらを使用します。

このような

マークアップ :

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

Jクエリ

var filterResult=$('div [data-color="blue"]'); 
于 2013-02-20T02:08:22.210 に答える