Html 如何将样式应用于即时标记而不是文本之后

Html 如何将样式应用于即时标记而不是文本之后,html,css,Html,Css,我有点担心,我如何才能添加样式,只有直接的孩子,而不是后面的一些纯文本 前 我的结构如下: 一, 如果我添加ul规则,则该规则不适用。如果我设置了背景,那么就不应该在这里应用,因为它在ul-plain-txt-lorm-ipsum之前有一些文本 和2 如果我添加ul规则,则应适用于此ul,因为之前没有文本 我没有任何css选择器,希望将样式应用到ul IMMENTED到div,如第2个示例所示,而不是如第1个示例所示。我的意思是,在第一个ex.InsideDiv中有一些文本,然后是ul。在这种情

我有点担心,我如何才能添加样式,只有直接的孩子,而不是后面的一些纯文本

我的结构如下: 一,

如果我添加ul规则,则该规则不适用。如果我设置了背景,那么就不应该在这里应用,因为它在ul-plain-txt-lorm-ipsum之前有一些文本

和2

如果我添加ul规则,则应适用于此ul,因为之前没有文本

我没有任何css选择器,希望将样式应用到ul IMMENTED到div,如第2个示例所示,而不是如第1个示例所示。我的意思是,在第一个ex.InsideDiv中有一些文本,然后是ul。在这种情况下,不应应用样式,并且在第二个ul直接应用于div的情况下,样式应仅应用于第一个ul

我试过div>ul:first child,但这两种情况都适用


简而言之,如果div和ul之间有任何文本,样式不应适用于ul

您可以检查div是否有即时文本,然后决定是否添加样式,如:

$("div").each(function(){
  if( $(this).clone().children().remove().end().text().trim() !== ""){
    console.log('Do not add style');
  }else{
    console.log('Add style');
  }
});
希望这有帮助

纯JS解决方案:

var divs=document.queryselectoral'div'; 对于var i=0;i你可以试着假设你将要有ul作为第n^2个孩子

分区:N-child2>ul:第一个孩子{ 颜色:红色; } 纯文本lorm ipusm 测试内容 测试内容 ======================================== 测试内容 测试内容 使用第一种类型。它与父项一起工作,因此只会立即产生效果

div>ul:第一种类型{ 背景:番茄; } 测试内容 测试内容 纯文本lorm ipusm 测试内容 测试内容
换句话说,如果是的第一个子项,则只希望应用CSS,而不希望在两者之间有任何文本?是否使用jQuery?您可以使用类型的第一个。选中answerNo jquery@Ihazkode,仅限纯css。@j08691是的,你是对的。在这个问题上,我没有看到JavaScript标记,更不用说jquery了。我的意思是在第一个ex中。在div中有一些文本,然后是ul。在这种情况下,样式不应应用。样式应应用于第一个ul,而不是second@mukund你的要求对吗?请解释一下你为什么这么做。事实上,我想要第一个答案。在你的情况下,它适用于所有ul,这是错误的。反过来说。意思是,应该只对ul应用样式,而不是从文本开始。我给出了两种不同的场景,都是不同的情况。第一个场景和第二个场景-没有前面的文本,如问题所示。样式应仅适用于第二种方案。同样的风格对第一场景应该没有影响,这是不正确的。我给出了两种情况。您的代码只适用于第一个div,但也适用于错误的div。样式不应应用于第一个。应适用于第二种情况,其中ul没有前面的文本。
<div>
<ul><li>test content</li></ul>
<ul><li>test content</li></ul>
</div>
$("div").each(function(){
  if( $(this).clone().children().remove().end().text().trim() !== ""){
    console.log('Do not add style');
  }else{
    console.log('Add style');
  }
});