如何区分两个标签相同的" for"属性?

时间:2014-12-09 02:14:12

标签: css css-selectors

我有以下HTML:

<label class="my-class" for="_something">Text Number 1</label>
<label class="my-class" for="_something">Number 2 Text</label>

基本上我有两个相同类的标签,= =属性

也相同

我知道我可以通过以下方式定位属性:

label[for="_something"] {
   /* input */
}

但我如何区分其中的2个?

基本上我需要使用CSS来隐藏第二个标签。

我可以通过“名称文字”定位属性吗?这个例子中的“2号文字”?

2 个答案:

答案 0 :(得分:1)

确实可以使用CSS。只需使用nth-of-type()

HTML:

<label class="my-class" for="_something">Text Number 1</label>
<label class="my-class" for="_something">Number 2 Text</label>
<label class="my-class" for="_something">Number 3 Text</label>
<label class="my-class" for="_something">Number 4 Text</label>

CSS:

label[for="_something"]:nth-of-type(2) {
  display: none;
}

PHPFiddle链接:http://jsfiddle.net/ua91bf0b/

请注意:这是CSS3功能,不适用于某些旧浏览器。

答案 1 :(得分:0)

如果你想根据它的文本(Number 2 Text)隐藏标签,那么你需要使用jQuery。几乎&#34;几乎&#34;因为你在jQuery中也使用了css选择器。

$('label[for$="_something"]:contains("2")')

例如,这个标签采用标签,其中for标签以&#34; _something&#34; (所以它对123_something和asd_something也很好)和标签文本包含&#34; 2&#34;。

您可以为此创建一个功能,以便于使用:

function HideLabel(forattr, texttosearch) {
  $('label[for$="'+forattr+'"]:contains("'+texttosearch+'")').css('display','none');
}

并使用它:

HideLabel('_something', '2');