0

HTML:

....<span id="elem_id0" style="....color:blue...">some text</span>
....<span id="elem_id1" style="....color:blue...">some text</span>
....<span id="elem_id2" style="....color:black...">some different text</span>
....<span id="elem_id3" style="....color:blue...">some text</span>
...

javascriptを使用して動的に色を変更しています。結局のところ、idがelem_idで始まり、色が「blue」であるすべての要素の数を数えたいと思います。

私はフォローしようとしています。(多くのバリエーションを試しました)。合計は正しくなっていますが、青の数は常に0になっています。理由はわかりません。

var blues = $('#[id^="elem_id"][font-color="blue"]').length;            
var total = $('#[id^="elem_id"]').length;

plアドバイス。

****更新**** *** _ _

以前の更新を削除しました。失敗は、attrの追加(色の前に空白を追加)のタイプミスが原因でした。したがって、マッチング時に失敗しました(ここに空白はありません...)。

私は今、私の間違いをすべてうまく修正しました。

すべてにthx。

4

3 に答える 3

5

代わりにこれを試してください:

var blues = $('[id^="elem_id"][style*="color:blue"]').length; 

jsfiddleの例

于 2013-01-16T18:16:17.003 に答える
1

これは、要素に属性font-colorがないためです。

var blues = $('[id^=elem_id]').filter(
  function() {
     var color = jQuery(this).css("color");
     return color==="rgb(0, 0, 255)" || color==="blue";    
  }
);
console.log(blues.length);

JSFiddle

于 2013-01-16T18:15:31.370 に答える
1

フィルタを使用してみてください。以下を参照してください。

$('span[id^=elem_id]').filter(function () {
    return this.style.color == 'blue';
}).length

デモ:http: //jsfiddle.net/braQw/

于 2013-01-16T18:17:03.270 に答える