1

我需要找出它们的任何跨度是否具有背景样式,以便我可以从它的属性中获得价值,我有 $(this)。结构是:

<div id="operative_time_limit" class="timedivd">
<span title="1 hours" data-y="1" data-x="0"></span>
<span title="2 hours" data-y="2" data-x="0"></span>
<span title="3 hours" data-y="3" data-x="0"></span>
<span title="4 hours" data-y="4" data-x="0"></span>
</div>

使用alert(jQuery(this).children().css('background').length);但总是得到 0 作为结果

4

4 回答 4

0

以下行将为您提供儿童的长度$(this)

alert(jQuery(this).children().css('background').length);

您可以使用以下代码查找具有除白色以外背​​景颜色的所有跨度(假设白色是默认颜色)

var length = $('#operative_time_limit').children().filter(function () {
    return $(this).css('background-color') != 'rgba(0, 0, 0, 0)' && $(this).css('background-color') != 'transparent';
}).length;

在这里,变量length可用于确定有多少跨度具有背景属性

见工作小提琴

于 2013-08-06T07:58:58.917 回答
0

尝试这个,

alert($('#operative_time_limit').find('span').length);

对于span哪个有background-color属性然后尝试它,

var c=0;
$('#operative_time_limit').find('span').each(function(){
     if($(this).css('backgroundColor')) // or 'background-color'
        c++;
});
alert(c);
于 2013-08-06T07:53:15.217 回答
0

我不确定$(this)您的上下文到底是什么。

但是以下内容:

var count = 0;
$('#operative_time_limit span').each(function(index){
   if($(this).css('background')){
      count++;
   }
});
alert(count);

会做的。从您的问题进一步推断,假设您想someAttr从背景为 css 的跨度中提取一些属性(让我们称之为),并且只有一个这样的跨度。假设这些是正确的假设,以下将为您提供您想要的:

var attributeValue;
$('#operative_time_limit span').each(function(index){
   if($(this).css('background')){
      attributeValue = $(this).attr('someAttr');
   }
});
You now have your desired value in attributeValue
于 2013-08-06T07:56:12.173 回答
-1

使用以下

alert(jQuery(this).children().hasClass('background')).

hasClss 确定是否为任何匹配的元素分配了给定的类。如果将类分配给一个元素,.hasClass() 方法将返回 true,即使其他类也是

于 2013-08-06T08:01:54.580 回答