CSS通过文本定位兄弟

时间:2011-11-01 10:43:14

标签: javascript

我正在尝试根据“编辑”这样的文字选择兄弟编辑菜单

css = ul.jd_menu li:contains(“编辑”)但它仍然选择文件链接,所以本质上是试图通过文本查找列表项

这是源的一个smipppet

<ul class="jd_menu" style="background-color: rgb(236, 233, 216);">
    <li class="" style="background-color: transparent;">
        File
        <ul class="jdm_events" style="left: 0px; top: 36px; display: none; background-color: rgb(236, 233, 216);">
    </li>
    <li class="">
        Edit 

1 个答案:

答案 0 :(得分:0)

请注意

<ul class="jdm_events" style="left: 0px; top: 36px; display: none; background-color: rgb(236, 233, 216);">

实际上并未关闭,因此编辑&lt; li&gt;在它下面而不是父&lt; ul&gt;。

尽管如此,a:content()选择器被考虑用于CSS3但被拒绝:http://www.w3.org/TR/css3-selectors/#content-selectors

所以目前没有办法在纯CSS中做到这一点。你可以改为

  1. 编写Javascript以遍历元素的textContent以查找编辑或
  2. 将所需的字符串作为自定义属性,例如&lt; li label =“编辑”&gt;编辑...&lt; / li&gt;然后选择那个。