jQuery - 单击启用/禁用页面上的所有样式表

Mav*_*ick 12 css jquery stylesheet

是否可以通过单击"禁用/启用CSS"按钮检测当前页面上的所有样式表,并在第一次单击时禁用它们以便不应用任何样式,然后在第二次单击时再次还原它们?知道jQuery会是什么样子,如果可能的话?

Max*_*drv 26

$('link[rel="stylesheet"]').attr('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)

这应该禁用所有这些,然后相反可以重命令它们:

$('link[rel="stylesheet"]').removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)

  • 这在Firefox中不起作用.[MDN说](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-disabled)使用`disabled`作为*HTML属性*是**非标准**; `disabled`只是一个*DOM属性*.您可以使用`.prop('disabled',true)`和`.prop('disabled',false)来修复代码. (11认同)

Ror*_*ane 8

要禁用所有样式表:

$('link[rel~="stylesheet"]').prop('disabled', true);
Run Code Online (Sandbox Code Playgroud)

要重新启用所有样式表:

$('link[rel~="stylesheet"]').prop('disabled', false);
Run Code Online (Sandbox Code Playgroud)

我在~=这里使用属性选择器而不是=使选择器仍然可以使用rel属性所在的样式表alternate stylesheet,而不仅仅是stylesheet.

此外,重要的是使用.prop,而不是.attr.如果您使用.attr,代码将无法在Firefox中使用.这是因为,根据MDN,disabled是所述的属性HTMLLinkElementDOM对象,但不是所述的一个属性link的HTML元素.使用disabled作为HTML属性是非标准的.