0

嗨,我需要编写 if 语句来检查 span 是否具有类“nie”,如果是,它应该更改背景文件,但我的语句设置每个位置的第一个 bg 文件“bg-nie.png”,有什么问题?

jQuery代码

if ($(".rzuty span.mieszkanie").hasClass("nie")) {
        $(".rzuty span.mieszkanie").css("background", "url(img/rzuty/mieszkania/bg-nie.png) repeat");
    } else {
        $(".rzuty span.mieszkanie").css("background", "url(img/rzuty/mieszkania/bg-tak.png) repeat");
    }

HTML

<div id="rzuty07p" class="rzuty">
    <span id="c_07_226" class="mieszkanie" title=""></span>
    <span id="c_07_228" class="mieszkanie" title=""></span>
    <span id="c_07_227a" class="mieszkanie" title=""></span>
    <span id="c_07_227b" class="mieszkanie" title=""></span>
    <span id="c_07_229" class="mieszkanie nie" title=""></span>
    <span id="c_07_005" class="mieszkanie" title=""></span>
    <span id="c_07_006" class="mieszkanie" title=""></span>
    <span id="c_07_008" class="mieszkanie" title=""></span>
    <span id="c_07_007a" class="mieszkanie nie" title=""></span>
    <span id="c_07_007b" class="mieszkanie nie" title=""></span>
</div>
4

3 回答 3

5

这可以简化为不需要 if 语句。只需进一步过滤您的选择:

var $rzutyspan = $(".rzuty span.mieszkanie");
$rzutyspan.filter(".nie").css("background", "url(img/rzuty/mieszkania/bg-nie.png) repeat");
$rzutyspan.not(".nie").css("background", "url(img/rzuty/mieszkania/bg-tak.png) repeat");

见演示:http: //jsfiddle.net/4A4W7/


或者,这可以使用纯 CSS 来实现:

.rzuty span.mieszkanie
{
   background: url(img/rzuty/mieszkania/bg-tak.png) repeat;
}
.rzuty span.mieszkanie.nie
{
   background: url(img/rzuty/mieszkania/bg-nie.png) repeat;
}
于 2012-08-16T09:51:44.357 回答
1

好吧,您正在使用一个通用类.mieszkanie来检查和操作所有匹配的集合。分别检查和操作:

$(".rzuty span.mieszkanie").each(function(k,v) {
    if ($(this).hasClass("nie")) {
        $(this).css("background", "url(img/rzuty/mieszkania/bg-nie.png) repeat");
    } else {
        $(this).css("background", "url(img/rzuty/mieszkania/bg-tak.png) repeat");
    }
});
于 2012-08-16T09:52:47.603 回答
0

这是一种方法:http: //jsfiddle.net/xoreznik/kC5L2/

您在选择器上使用 if 语句,在这种情况下将返回多个对象。在随附的小提琴中,您可以看到如何定位任何具有/不具有目标类的元素并将 css 应用于它。

于 2012-08-16T09:56:32.607 回答