JQuery:如何获取以相同ID字符开头的多个元素的特定属性类型计数?

时间:2013-01-16 18:13:05

标签: javascript jquery html

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动态更改颜色。在这一切的全部内容中,我想要计算所有以idm_id开头并且颜色为“蓝色”的元素。

我正在努力追随。 (尝试了很多变化)。总计正确,但蓝计数总是来0.不知道为什么....

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

Pl建议。

**** 更新 * ** < EM> * ***

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

我现在纠正了我的错误。

总而言之。

3 个答案:

答案 0 :(得分:5)

请改为尝试:

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

jsfiddle example

答案 1 :(得分: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

答案 2 :(得分:1)

尝试使用过滤器..见下文,

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

DEMO: http://jsfiddle.net/braQw/