CSS选择非常直接的子对象

CSS选择非常直接的子对象,css,Css,是否可以选择元素第一个,但不能选择第二个 <p> <code>first</code> </p> <p> Text <code>second</code> Text </p> 当其子级为但在中没有内容(空白除外)时,我打算选择 我想在没有JS的情况下完成它,如果不可能的话,这也是一个答案,如果解释了它您可以使用jQuery中的过滤器来完成这项工作: $('p').filter(function()

是否可以选择元素
第一个
,但不能选择
第二个

<p> <code>first</code> </p>
<p> Text <code>second</code> Text </p>
当其子级为
但在
中没有内容(空白除外)时,我打算选择


我想在没有JS的情况下完成它,如果不可能的话,这也是一个答案,如果解释了它

您可以使用jQuery中的过滤器来完成这项工作:

$('p').filter(function() {

  var nodetoCheck = $(this).contents()[0];
  if ($(this).contents()[0].nodeValue.trim() === '') {
    nodetoCheck = $(this).contents()[1];
  }

  if (nodetoCheck.nodeType === 1) {
    return true;
  }
}).addClass('selected');
jsidle示例:

p:first child>code{
颜色:#fff;
背景:番茄;
}
首先


Text
second
Text

我想说。。为此,您需要CSS和Javascript的组合。。所以,我们的想法是选择所有
p
标记,其中有一个
code
标记作为直接子项,然后过滤
p
标记的
text
属性为空的一次。那些投反对票的人,必须说明原因。@VijayKumarB-谢谢,但我想用css来做,否则我不会这么做-用JS进行样式设计是肮脏的