如何使用JavaScript更改HTML元素的CSS

如何使用JavaScript更改HTML元素的CSS,javascript,jquery,html,css,meteor,Javascript,Jquery,Html,Css,Meteor,在阅读了一些关于这个主题的问题/答案后,我试图让它对我有用,但我做不到 故事情节是,我有X个元素(所以它意味着没有ID,只有类),当我点击其中一个元素时,我想改变背景 因此,对于JS,我做到了: 'click .switch' (event) { event.toElement.closest("li").css('background-color','black'); if(this.stateMachine == 'running'){ Meteor.call

在阅读了一些关于这个主题的问题/答案后,我试图让它对我有用,但我做不到

故事情节是,我有X个元素(所以它意味着没有ID,只有类),当我点击其中一个元素时,我想改变背景

因此,对于JS,我做到了:

'click .switch' (event) {
    event.toElement.closest("li").css('background-color','black');


    if(this.stateMachine == 'running'){
      Meteor.call("switch", this.nameMachine);
    }

  },
要获取容器(这里是一个
  • ),我有以下错误:

    event.toElement.closest(…).css不是函数

    尽管有
    event.toElement.closest
    返回正确的元素:

    那么我做错了什么

    $('.liContainer.switch')。打开('click',function(){
    $(this.toggleClass('active');
    });
    
    .active{
    背景色:粉蓝色;
    }
    
    
    • 一个
    • 两个
    • 三个
    $('.liContainer.switch')。打开('click',function(){
    $(this.toggleClass('active');
    });
    
    .active{
    背景色:粉蓝色;
    }
    
    
    • 一个
    • 两个
    • 三个

    由于您使用的是Meteor,您可能更喜欢以下语法:

    "click .switch": function(event){
    $(event.target).css("background-color", "black");
    }
    

    由于您使用的是Meteor,您可能更喜欢以下语法:

    "click .switch": function(event){
    $(event.target).css("background-color", "black");
    }
    

    event.toElement
    更改为
    $(this)
    $(event.target)
    。最好是former@RoryMcCrossan什么都没有发生,没有错误,但没有更改什么元素是
    在选择器中单击
    ?这不是有效的HTML,除非你使用了一些你没有提到的奇怪库MeteorJS@RoryMcCrossanIt与
    $(event.target)
    !!将
    event.toElement
    更改为
    $(this)
    $(event.target)
    。最好是former@RoryMcCrossan什么都没有发生,没有错误,但没有更改什么元素是
    在选择器中单击
    ?这不是有效的HTML,除非你使用了一些你没有提到的奇怪库MeteorJS@RoryMcCrossanIt与
    $(event.target)
    !!在代码段中它可以工作,但在我的JS中什么都没有发生(我放入了一些日志,但什么都没有显示)在代码段中它可以工作,但在我的JS中什么都没有发生(我放入了一些日志,但什么都没有显示)