在jquery中获取*选择器

时间:2016-05-25 08:51:16

标签: jquery html css

这对你来说可能是一个愚蠢的问题,但我真的很好奇如果使用jquery在我的css中获取*会怎样?例如:

的CSS:

* {
   background: #fff;
}

jquery的:

$(document).ready(function(){
    $("*").css("color","#999999");
});

我已经测试了它,它在jsfiddle中不起作用。 xD在我的项目中它有点工作。我的所有元素都有style="..."

JSFIDDLE

那边有工作吗?我应该为它设置另一个课吗?改变这种情况的最佳方法是什么?请不要告诉我更改我的css文件。我尽可能不想更改我最初没有做的文件。任何建议都非常感谢。非常感谢你!

3 个答案:

答案 0 :(得分:1)

因为你没有导入jQuery库,它在你的小提琴中不起作用, 并且您设置了字体颜色而不是背景颜色。

但它运作正常。

<强> All selector doc

示例

$(document).ready(function(){
$("*").css("background-color","blue");
});
*{
  background-color:red;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
</table>

答案 1 :(得分:1)

请不要使用

* {
   background: #fff;
}

所有将在您感谢之后使用代码的开发人员。 CSS主要基于继承和行为级联。如果您希望所有内容都具有白色背景,则只需将其设置为最上层元素,然后为后代设置异常。例如

body {
    background-color: #fff;
}

如果要选择页面上的每个元素,例如可以

$('body').find("*").css("color", "#000");

然而,这可以以类似的方式处理,而不需要使用jQuery遍历DOM:

body {
    background-color: #fff;
    color: #000;
}

然后再次,如果你想让一些后代以不同的方式行事,那么另外设置它们,低于你在CSS中的这个设置。

答案 2 :(得分:1)

如果您不想更改原始文件,您也可以只使用覆盖加载原始文件下方的其他CSS文件。你可能也是如此。

_bad()

使用jQuery或JavaScript覆盖有一个巨大的缺点,即所有元素都将内联附加的样式,这是不必要的。

除了定位/** overrides.css **/ * { background: red } 之外,您还可以将与语言代码匹配的特定类添加到*,例如通过JS添加body。那么你的CSS就可以是:

body.lang-de

在JS中,您可以使用class manipulation methods

body.lang-de * {
    background: red;
}