【问题标题】:CSS give class or css to only selected elementCSS 仅将类或 css 赋予选定元素
【发布时间】:2019-03-19 15:29:18
【问题描述】:

我有一组无序列表。我创建了一些让每个列表都被点击的函数,它将运行一个 JS 函数。现在我想添加一些css,如果单击列表,它的bg颜色会改变。到目前为止我的代码:

function getDealsTable(obj) {
        var tenor = obj.innerHTML;
        $(this).closest('li').css('background-color: rgba(86, 142, 175, 1) !important');
        $(this).closest('li').siblings('li').css('background-color: rgba(15, 86, 132, 1) !important');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class='tenors'>
    <li onclick='getDealsTable(this);'>12x</li>
    <li onclick='getDealsTable(this);'>24x</li>
    <li onclick='getDealsTable(this);'>36x</li>
    <li onclick='getDealsTable(this);'>48x</li>
</ul>

不幸的是,它不起作用。我试图将其更改为课程,但仍然无法正常工作。任何人都可以帮助我吗?谢谢

【问题讨论】:

  • 最接近的意思是遍历树 - 你不能有最近的 li 除非它是一个嵌套的 ul(因为你的点击绑定到一个 li)
  • 'this' 是 li,所以不需要最接近,试试 $(this).css('background-color: rgba(86, 142, 175, 1) !important');
  • 已经尝试只使用 $(this) 但仍然无法正常工作
  • 真正想要实现什么?还有兄弟姐妹吗?

标签: javascript jquery html css


【解决方案1】:

为了在 jQuery 中使用!important,您需要有 2 个参数。第一个参数是cssText,第二个是你要设置的文字为explained here

例子:

$('.selector').css('cssText', 'color: red !important;')

你也可以直接在javascript中使用on创建点击事件,不需要放在html元素上。

$('ul.tenors > li').on('click', function() {
  // Reset all the li colors (must come first)
  $('ul.tenors > li').css('cssText','background-color: rgba(86, 142, 175, 1) !important;');
  // Set the color of the clicked li item (must come second)
  $(this).css('cssText', 'background-color: rgba(15, 86, 132, 1) !important;');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class='tenors'>
  <li>12x</li>
  <li>24x</li>
  <li>36x</li>
  <li>48x</li>
</ul>

【讨论】:

  • 完美!但是在您的代码中,颜色是相反的。不过没关系,我能应付。还要感谢删除该功能以将其指向其类。谢谢!
  • 我在js中添加了一些cmets,以防万一你需要。
  • 当然!感谢您的解释... :)
猜你喜欢
  • 2020-07-22
  • 2017-05-21
  • 2019-09-10
  • 2017-02-28
  • 2014-06-10
  • 1970-01-01
  • 2017-04-07
  • 2011-07-24
  • 2012-12-13
相关资源
最近更新 更多