if语句是否可见是未定义的

时间:2013-09-24 17:33:08

标签: jquery

我正在尝试获取具有显示块的attr的id slide-1,然后将一个类添加到活动的id pagecount-1。我试图为每张幻灯片显示活动的指示器。这就是我所拥有的:

<div id="slider">
  <div class="sp active" id="slide-1" style="display: block"></div>
  <div class="sp" id="slide-2" style="display: none"></div>
  <div class="sp" id="slide-3" style="display: none"></div>
  <div class="sp" id="slide-4" style="display: none"></div>
</div>

<div id="page">
  <div id="page_count-1" class="indicate"></div>
  <div id="page_count-2" class="indicate"></div>
  <div id="page_count-3" class="indicate"></div>
  <div id="page_count-4" class="indicate"></div>
</div>

jQuery的:

for (var i = 1; i <= 4; i++) {
    if ($('#slide-' + i).is(':visible')) {
        $('#page_count-' + i).addClass('active');
    }
}

控制台日志一直显示未定义。如果我运行.attr('display', 'block') 它使所有活跃。

1 个答案:

答案 0 :(得分:1)

display是CSS属性,不是属性。尝试:

.css('display', 'block');

.attr()将在元素上设置属性,例如:

<div id="some-div"></div>

会变成:

<div id="some-div" data-foobar="barfoo"></div>

如果你像这样运行.attr()

$("#some-div").attr("data-foobar", "barfoo");