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”开头且颜色为“蓝色”的元素。

我正在尝试跟随。(尝试了许多变化)。总数是正确的,但蓝色计数总是为 0。不知道为什么....

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

请建议。

****更新* ** * ***

删除了之前的更新。失败是由于添加 attr 的拼写错误(在颜色前添加了一个空格)。因此在匹配时失败(这里没有空格......)。

我现在已经纠正了我的错误。

谢谢大家。

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 回答