从JS更改所有元素的Css

时间:2014-08-14 10:22:23

标签: javascript jquery html css

我试图从一个小显示设置面板更改jQuery对话框的font-family。 我尝试过所有这些都无济于事:

$('#orderHolder').style.fontFamily='Bookman Old Style';
$('.ui-dialog-content').style.fontFamily='Bookman Old Style';
$('.ui-widget-content').style.fontFamily='Bookman Old Style';
$('#orderHolder').css("font-family", "Bookman Old Style';
$('*').css('font-family', 'Bookman Old Style'); //this is what I'm after 

(#orderHolder是包含对话框内容的div)

我发现了 *{ font-family: 'Bookman Old Style'; }

.css文件中的

工作正常,整体效果就是我所追求的。

那么,如何在javascript中选择样式的所有元素?

4 个答案:

答案 0 :(得分:7)

jQuery的:

$('*').css('font-family','Bookman Old Style');

的javascript:

document.querySelectorAll('*').style.fontFamily = 'Bookman Old Style';

<强>更新

实际上,当您使用querySelectorAll时,您需要迭代所有元素:

var el = document.querySelectorAll('*');
for(var i=0;i<el.length;i++){
  el[i].style.fontFamily = 'Bookman Old Style';
}

但是在使用星号选择器时迭代所有元素是不必要的,你可以使用querySelector:

document.querySelector('*').style.fontFamily='Bookman Old Style';

但实际上如果你将font-family设置为body,你的字体将被继承到所有元素,所以而不是其他东西只适用于body。

答案 1 :(得分:2)

您可能需要将其作为重要风格: 此外,如果有任何其他字体系列,请删除它。 试试下面的代码

在CSS中:

*{
font-family: 'Bookman Old Style' !important;
}

在jquery中:

$('#content').find('*').css("font-family","'Bookman Old Style'");

答案 2 :(得分:0)

  

我找到了

*{
   font-family: 'Bookman Old Style';
}
     .css文件中的

工作正常,整体效果就是我所追求的。

在这种情况下,由于您显然没有将font-family应用于更具体的选择器,因此您最好的选择是使用该规则向文档中添加style元素:

$("<style>* { font-family: 'Bookman Old Style'; }</style>").appendTo("head");

或者可能:

$("<style>body { font-family: 'Bookman Old Style'; }</style>").appendTo("head");

...如果他们都从body继承了他们的风格。

这样,它适用于整个过程,也适用于您之后添加的新元素。

答案 3 :(得分:-1)

**应用以下方法**


1.jQuery           $('*').css('fontFamily','Times New Roman');

2.Java脚本            document.querySelectorAll('*').style.fontFamily = 'Times New Roman';

3.Css           *{ font-family: 'Times New Roman'; }