Javascript jQuery`prop`在FireFox中无法使用details的`open`属性
我想修复Firefox中详细的html元素行为 因此,我自己切换Javascript jQuery`prop`在FireFox中无法使用details的`open`属性,javascript,jquery,html,Javascript,Jquery,Html,我想修复Firefox中详细的html元素行为 因此,我自己切换open属性,如下所示: $('summary').on('click', function () { var details = $(this).parent(); $('details').prop('open', !details.attr('open')); }); 我使用prop是因为open是一个属性而不是属性,对吧 无论如何,这在Firefox中不起作用,但如果我将prop更改为attr,它就会
open
属性,如下所示:
$('summary').on('click', function () {
var details = $(this).parent();
$('details').prop('open', !details.attr('open'));
});
我使用prop
是因为open
是一个属性而不是属性,对吧
无论如何,这在Firefox中不起作用,但如果我将prop
更改为attr
,它就会起作用
$('details').attr('open', !details.attr('open'));
有人能告诉我哪里出了问题吗?Thnx 您正在使用的css标识一个属性。这就是为什么更改属性会得到css更改,而设置属性则不会 我使用道具是因为open是属性而不是属性,对吧 也可以是,这取决于你如何定义它。css同样引用属性 有人解释了它们的区别以及在哪里使用它们 简而言之 属性是HTML元素上的一个设置,它将某些数据或行为属性化到元素。它主要与加载相关,帮助我们正确地呈现HTML,这可能是您使用
prop
的原因
属性是DOM节点的一个特征,告诉我们它的当前状态是foo。有一些特定的特性附着到特定的节点类型,有些是按标准附着的,有些是按浏览器设计附着的。由于它是DOM的一部分,这个属性一直伴随着DOM操作,也就是Javascript。为什么不使用
open
类,然后简单地toggleClass('open')
?我也这么认为,但这不是关键原因,因为使用prop不是添加prop open=“open”,而是使用attr add attribute open=“open”(检查它)@Bhojendra-C-LinkNepal,我不知道你的意思prop
添加属性,attr
添加属性。