微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何一次设置每个 li 元素的样式?

如何解决我如何一次设置每个 li 元素的样式?

我试图在点击时一次设置每个 <li> 元素的样式,而不是一次全部设置。对于每次点击,第一次,然后是第二次点击,下一次,依此类推...

这段代码一次性为所有 li 元素添加样式。我该怎么做?

$("a").click(function() {
  var menu = document.getElementsByTagName("li");
  for (var i = 0; menu[i]; i++) {
    $(menu).css("background","red");
  }
});
p {
  color: red;
  margin: 5px;
  cursor: pointer;
}

p:hover {
  background: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a>sdadsa</a>

<ul>
  <li>asda</li>
  <li>sadada</li>
  <li>sada</li>
  <li>asdad</li>
</ul>

解决方法

一种方法是添加一个类来进行样式设置。

当您单击元素时,找到第一个没有该类的 <li> 并将其添加到该类中。

添加和删除类通常比修改和撤消内联样式更容易

$("a").click(function() {
  $('li').not('.red-bg').first().addClass('red-bg')
});
.red-bg {background:red}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a>sdadsa</a>

<ul>
  <li>asda</li>
  <li>sadada</li>
  <li>sada</li>
  <li>asdad</li>
</ul>

,

可以使用 jQuery 的 .css() 来检查指定元素的 css 值

$("a").click(function() {
  var menu = document.getElementsByTagName("li");

  for (var i = 0; menu[i]; i++) {
    // get element of current index
    const menuElement = menu[i];

    // if the first element's background is not red.
    if ($(menuElement).css("background") !== "red") {

      // set it red.
      $(menuElement).css("background","red");

      // escape for loop
      break;
    }
  }
});
,

您可以使用指向当前 li 元素的变量,该元素应在下次单击时更改背景。当锚点标签被点击时,我们移除前一个 li 元素的背景并改变当前元素的背景

clickConfirmWindow(driver,SURVEY_EXIT_BUTTON_ID_LOCATOR,"Survey exit window");

... and many mode windows with unique ID with random order

protected void clickConfirmWindow(WebDriver driver,String elementId,String name) {
        // Check if warning window is displayed using button ID
        System.out.println("Searching " + name + " using " + elementId);
        if (isClickable(driver,elementId,1)) {
            System.out.println("Found " + name + " using " + elementId);
            driver.findElement(By.id(elementId)).click();
        }
    }

protected void clickConfirmWindow(WebDriver driver,1)) {
            System.out.println("Found " + name + " using " + elementId);
            driver.findElement(By.id(elementId)).click();
        }
    }

private Boolean isClickable(WebDriver driver,int timeOut) {
        try {
            new WebDriverWait(driver,timeOut).until(ExpectedConditions.visibilityOfElementLocated(By.id(elementId)));
            return true;
        } catch (TimeoutException e) {
            e.printStackTrace();
            return false;
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。