只将CSS类添加到那些没有标题的链接中。属性

时间:2016-04-01 13:40:05

标签: javascript jquery

<table>
    <tr>
        <td><a href src="xxx" title="Some text">Link</a></td>
        <td><a href src="xxx" title="">Link</a></td>
    </tr>
    <tr>
        <td><a href src="xxx" title="Some text">Link</a></td>
        <td><a href src="xxx" title="Some text">Link</a></td>
    </tr>
</table>

我想将一些CSS类添加到

<td><a href src="xxx" title="">Link</a></td>

如何使用jQuery或JavaScript

进行此操作

3 个答案:

答案 0 :(得分:8)

无需使用jQuery添加CSS类。您可以在CSS中使用属性值选择器。

a[title=""] {
    color: red;
}

使用jQuery添加类,而不仅仅是样式用途

$('a[title=""]').addClass('someClass');

选择没有title属性

的元素
a:not([title]) {
    color: red;
}

可以在jQuery中使用相同的选择器。

$('a:not([title])')

答案 1 :(得分:1)

  

如何使用jQuery或JS

进行此操作

您可以使用attribute equals selector

执行此操作
$("table > tbody > tr > td > a[title='']").addClass("something");

另请注意,您的html无效,tbody应该是table元素的直接子级。

<table>
  <tbody> <!-- note the tbody here -->
    <tr>
      <td><a href src="xxx" title="Some text">Link</a></td>
      <td><a href src="xxx" title="">Link</a></td>
    </tr>
    <tr>
      <td><a href src="xxx" title="Some text">Link</a></td>
      <td><a href src="xxx" title="Some text">Link</a></td>
    </tr>
  </tbody>
</table>

DEMO

答案 2 :(得分:0)

正如其他答案所指出的那样,你可以用css实现这个目标。但是,如果您使用javascript或jQuery 设置,则可以使用以下内容;

  

注意 - 我不建议使用此解决方案,因为您要求使用javascript / jQuery解决方案,因此我发布了此解决方案。使用CSS   唯一的选择。

var links = document.getElementsByTagName('a');

for(var l = 0; l < links.length; l++){
  if(!links[i].hasAttribute('title')){
   // Link without title attribute

   links[l].style.color = 'red';

   // Or if you want to add a class...

   links[l].setAttribute('class', links[l].getAttribute('class') + 'red');
  }
}