jQuery只选择一个子元素

jQuery select element but one child element

本文关键字:一个 元素 选择 jQuery      更新时间:2024-03-12

我正试图在一个元素和除一个子元素外的所有子元素上应用一些CSS。这也包括元素外部的字符串。这是一个我需要省略的标签,因为我需要将标签上的CSS更改为其他内容。我不能这样做:

$("div *").not("h1")[...]

因为它不适用于字符串。

http://jsfiddle.net/P5EAs/2/和http://jsfiddle.net/P5EAs/1/看看我的意思。

这是jQuery,所以使用CSS是不起作用的。我需要使用.css()

由于h1div的子级,因此需要查找子级并使用not。。试试这个

$("div").children().not('h1').css("color","red");

或者,

使用简单的CSS

div{color:red;}
h1{color:black;} //after div..

这应该工作

尝试:

仅CSS:

div{color:red;}
div h1{color:black;}

在这里打转

仅JS:

$("div").css("color", "red");
$("div h1").css("color", "black");

在这里打转

$("div").css("color","red").find("h1").css("color", "black");

你能得到的最接近的东西是:

$("div > *:not(h1)").css("color", "red");

但是,这将忽略未包装在元素中的文本

您不能直接为文本节点设置颜色,因此您必须在父节点上设置红色,特别是将H1设置为黑色,或者您必须将文本节点包裹在一个跨度中,并在除H1之外的所有子节点上设置红色。

$('div').children(':not(h1)').css('color', 'red').end()
        .contents().filter(function() {
            return this.nodeType === 3;
        }).wrap('<span style="color: red" />')

FIDDLE