Javascript 在onclick事件中设置css属性

Javascript 在onclick事件中设置css属性,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在popover中将fontStyle属性设置为单个元素(通过id)时遇到问题。我得到onClick事件,将样式(boldfont-style)放到所有类元素中,然后尝试将另一个样式(normal)放到一个(单击的)元素中。我的代码是: $(document).on('click', '.listElement', function () { $('.listElement').css('font-weight', 'bold'); alert(this.id); $(

我在popover中将
fontStyle
属性设置为单个元素(通过
id
)时遇到问题。我得到
onClick
事件,将样式(
bold
font-style)放到所有类元素中,然后尝试将另一个样式(
normal
)放到一个(单击的)元素中。我的代码是:

$(document).on('click', '.listElement', function () {
    $('.listElement').css('font-weight', 'bold');
    alert(this.id);
    $(this).css('font-weight', 'normal');
});
有一个

为所有类元素设置
bold
样式有效,并且对话框正确显示
id
,所以这是正确的元素(在
this
中),但
.css()
方法无效。我尝试使用
id
来设置样式,例如:

$('#A').css('font-weight', 'normal');

控制台中并没有错误,但也不能正常工作。是否有其他方法将fontStyle设置为单个唯一元素?

与其删除CSS样式,为什么不直接将其添加到单击的对象

获取单击对象的ID并使用该ID

$(document).on('click', '.listElement', function () {
var clickEl = this.id; //ID of clicked object
$('.listElement').not('#' + clickEl).css('font-weight', 'bold'); //bolds everything which is NOT the clicked item.
alert(this.id);
});


如果有特定原因,您需要删除样式,而不是从不应用它

$(document).on('click', '.listElement', function () {
$('.listElement').css('font-weight', 'bold');
alert(this.id);
$('.listElement#' + this.id).css('font-weight', 'normal');
});

您的代码实际上正在运行。但是,当弹出框关闭时,单击它或单击外部并再次打开,插件会将字体重新初始化为初始状态。@DanPhilip我不确定,但可能你错了,因为没有初始状态。在页面加载中,所有元素的字体样式都是
normal
字体,在第一次单击(任何元素)后,所有元素的字体样式都是
bold
字体。问题是,每次单击链接时都会重定向到页面,完整的代码从开始运行。如果要保存单击状态,必须将其存储在会话存储中,并在脚本开始时请求。尝试它没有链接,你会看到css的作品。另一种选择是使用MVC编写一个单边应用程序,并监听hashChange事件。(我正在编写这方面的教程)@TypedSource那么为什么要按类设置元素的字体样式呢?@barmi,因为您不重新加载页面
$(document).on('click', '.listElement', function () {
$('.listElement').css('font-weight', 'bold');
alert(this.id);
$('.listElement#' + this.id).css('font-weight', 'normal');
});