Jquery 为什么:第一个孩子不工作?

Jquery 为什么:第一个孩子不工作?,jquery,html,css,radio-button,css-selectors,Jquery,Html,Css,Radio Button,Css Selectors,为什么jQuery的这部分工作不正常 $(function() { if ($('#slide-01').is(":first-child")) { $('input:radio[id=target-slide-01]').prop('checked', true); } else { $('input:radio[id=target-slide-01]').prop('checked', false); } if ($('#slide-02').is(":f

为什么jQuery的这部分工作不正常

$(function() {

  if ($('#slide-01').is(":first-child")) {
    $('input:radio[id=target-slide-01]').prop('checked', true);
  } else {
    $('input:radio[id=target-slide-01]').prop('checked', false);
  }

  if ($('#slide-02').is(":first-child")) {
    $('input:radio[id=target-slide-02]').prop('checked', true);
  } else {
    $('input:radio[id=target-slide-02]').prop('checked', false);
  }

  if ($('#slide-03').is(":first-child")) {
    $('input:radio[id=target-slide-03]').prop('checked', true);
  } else {
    $('input:radio[id=target-slide-03]').prop('checked', false);
  }

  if ($('#slide-04').is(":first-child")) {
    $('input:radio[id=target-slide-04]').prop('checked', true);
  } else {
    $('input:radio[id=target-slide-04]').prop('checked', false);
  }

});
指向jQuery实现位置的链接位于此页面上

当我检查HTML和CSS中的元素时,每个幻灯片最终都有一个“:first child”(当幻灯片旋转时),但我猜jQuery没有识别旋转,或者我的jQuery在某个地方关闭了


我也尝试过使用:first代替:first child,但这没有什么区别。

单选按钮的函数在页面加载时只调用一次,因为它是一个匿名自调用函数。如果你说出一个名字

function updateRadioButtons() {

    if ($('#slide-01').is(":first-child")) {
      $('input:radio[id=target-slide-01]').prop('checked', true);
    } else {
      $('input:radio[id=target-slide-01]').prop('checked', false);
    }

    if ($('#slide-02').is(":first-child")) {
      $('input:radio[id=target-slide-02]').prop('checked', true);
    } else {
      $('input:radio[id=target-slide-02]').prop('checked', false);
    }

    if ($('#slide-03').is(":first-child")) {
      $('input:radio[id=target-slide-03]').prop('checked', true);
    } else {
      $('input:radio[id=target-slide-03]').prop('checked', false);
    }

    if ($('#slide-04').is(":first-child")) {
      $('input:radio[id=target-slide-04]').prop('checked', true);
    } else {
      $('input:radio[id=target-slide-04]').prop('checked', false);
    }

  }
当幻灯片被更改时,您可以调用它

function moveLeft() {
    $('#myslider ul').animate({
        left: +containerWidth
    }, 600, function () {
        $('#myslider ul > li:last-child').insertBefore('#myslider ul > li:first-child');
        $(this).css('left', '');
        updateRadioButtons();
    });

}

function moveRight() {
    $('#myslider ul').animate({
        left: -containerWidth
    }, 600, function () {
      $('#myslider ul > li:first-child').insertAfter('#myslider ul > li:last-child');
      $(this).css('left', '');
        updateRadioButtons();
    });

}
还有页面加载

$(function() {

  // Key animation.

    updateRadioButtons();

  var myTimer = setInterval(function () {
    moveRight();
  }, 5000);

我不知道jQuery,但是如果您打算从包含四个幻灯片的标记开始,那么幻灯片三在逻辑上永远不会是第一个孩子,不是吗?您只需在DOM准备好后调用函数,但永远不会。。。那么第一个孩子总是幻灯片01。每次更改幻灯片时都需要调用该函数。@Danko:您应该将其添加为答案:)@Danko如果每6秒在“最后一张”幻灯片之后插入“第一张”幻灯片,我将如何调用该函数?我需要使用.change()或类似的东西吗?我对jQuery相当陌生,所以我提前道歉。您可以给这个函数起个名字,然后在intervall函数中调用它。。。但是看看你的代码,我建议,你告诉我们,你真正想要实现的是什么。。。因为看起来,你做的事情比需要的更复杂。。。