在html中更改子元素onclick父元素的颜色

cly*_*rea 2 html javascript css jquery

在给定的代码段中,我给出了代码,并且期望结果是,当再次单击父div时,默认颜色应应用于子元素。但条件是代码应尽可能少。

需要没有.toggleclass,.toggle,.addclass,.removeclass的解决方案(如果可能)。

谢谢。

*编辑非常感谢大家的宝贵回答。我很感激。座右铭=>改善您的知识库。

$('li').click(function() {
  $(this).children().css({
    "color": "red",
    "border": "2px solid red"
  });
})
Run Code Online (Sandbox Code Playgroud)
.ancestors * {
  display: block;
  border: 2px solid lightgrey;
  color: lightgrey;
  padding: 5px;
  margin: 15px;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script>
  </script>
</head>

<body class="ancestors">body (great-great-grandparent)
  <div style="width:500px;">div (great-grandparent)
    <ul>ul (grandparent)
      <li>li (direct parent)
        <span>span</span>
      </li>
      <li>li (direct parent)
        <span>span</span>
      </li>
      <li>li (direct parent)
        <span>span</span>
      </li>
    </ul>
  </div>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

ber*_*ick 7

由于您使用的是jQuery,因此可以.toggleClass在两个CSS类之间进行切换,一个使用新颜色,另一个使用默认颜色。这是的参考toggleClass,您可以看到第一个演示示例正在执行我所希望的操作:https : //api.jquery.com/toggleclass/

  • 为什么要直接应用内联样式而不是使用类(使用.addClass或.removeClass或类似方法)? (2认同)