Html 查找具有某些子项的元素

Html 查找具有某些子项的元素,html,css,css-selectors,Html,Css,Css Selectors,我试图将导航菜单项定位到具有子菜单项的菜单项,以便在这些项之后放置一个向下箭头。到目前为止,我有: nav[role=navigation] ul li a:after { padding-left:5px; content: "\25BE"; color:#00b49c; } 你知道我该怎么做吗 我试过:nav[role=navigation]>ulli a:after但运气不好 谢谢大家试试看 nav[role=navigation] ul li a::after { content

我试图将导航菜单项定位到具有子菜单项的菜单项,以便在这些项之后放置一个向下箭头。到目前为止,我有:

nav[role=navigation] ul li a:after { 
padding-left:5px; 
content: "\25BE";
color:#00b49c;
}
你知道我该怎么做吗

我试过:
nav[role=navigation]>ulli a:after
但运气不好

谢谢大家

试试看

nav[role=navigation] ul li a::after { 
content: "\25BE";
color:#00b49c;
display: block;
float: left;
width: 20px;
height: 10px;
}

根据提供的信息,我猜ul是子项,对吗?如果是这种情况,我能想出的最佳解决方案(未经测试)是:

如果您是jQuery新手,请注意以下几点:

  • 标准用法是使用
    $(document).ready(function(){})方法
  • :has
    选择器是特定于jQuery的(据我所知,尽管它可能包含在CSS3或CS4中——只要出现)
  • 请注意,
    .CSS
    函数中的CSS属性是逗号分隔的,属性名称在使用的地方漏掉了破折号,破折号后的第一个字母是大写的(例如paddingLeft)
  • ul li a
    后面的
    $(this)
    用于表示
    循环中当前对象中无序列表中列表项内的任何链接
  • 我不完全确定你想要选择什么——是nav、ul还是li。无论是哪一个,您都应该修改上述代码,以便希望选择的元素位于第一行的:之前


    如果我没有很好地回答这个问题,那么请详细说明您想要实现的目标,我会尽力修改我的答案以满足您的要求。

    您能给我们看一个HTML片段吗?nav[role=“navigation”]ul li a:以后您只限于CSS吗?或者你愿意接受jQuery吗?如果是后者,则jQuery具有选择器,例如
    li:has(ul)
    (选择包含一个或多个
    ul
    标记的所有
    li
    标记)。如果jQuery还可以的话,我明天会发布一个解决方案让你接受。@ClarkeyBoy:我想你可以发布一个答案。OP在下面承认jQuery是一条可行之路。这并不是针对作为父项的列表项,而是针对所有项,不管它是否有子项。对不起,我的错:nav[role=navigation]>ul>li>a:不幸的是,我刚刚被告知CSS无法根据子项更改父选择器。看来jquery是一个不错的选择。谢谢各位
    $(document).ready(function() {
        $("nav[role=navigation]:has(ul)").each(function() {
            $("ul li a", $(this)).after("\25BE").css({color: "#00b49c", paddingLeft: "5px"});
        });
    });