我正在尝试在元素和所有孩子上应用一些CSS而不是一个。这也包括元素之外的字符串。这是我需要遗漏的标签,因为我需要将标签上的CSS更改为其他内容。我不能这样做:
$("div *").not("h1")[...]
因为它不适用于字符串。
http://jsfiddle.net/P5EAs/2/和http://jsfiddle.net/P5EAs/1/了解我的意思。
这是jQuery,所以用CSS做这件事不行。我需要使用 .css()
答案 0 :(得分:1)
由于h1
是div
的孩子,你需要找到孩子并且不要使用..
试试这个
$("div").children().not('h1').css("color","red");
,或者
简单的CSS
div{color:red;}
h1{color:black;} //after div..
这应该有效
答案 1 :(得分:1)
尝试:
只有CSS:
div{color:red;}
div h1{color:black;}
只有JS:
$("div").css("color", "red");
$("div h1").css("color", "black");
答案 2 :(得分:1)
$("div").css("color","red").find("h1").css("color", "black");
答案 3 :(得分:0)
你能得到的最接近的是:
$("div > *:not(h1)").css("color", "red");
但是,这将忽略未包含在元素中的文本
答案 4 :(得分:0)
您无法直接将颜色设置为文本节点,因此您必须在父级上设置红色,并将H1专门设置为黑色,或者您必须将textnode包装在一个范围内,并设置H1上的所有孩子都是红色。
$('div').children(':not(h1)').css('color', 'red').end()
.contents().filter(function() {
return this.nodeType === 3;
}).wrap('<span style="color: red" />')