在具有特定文本的TD之后增加TD的宽度?

时间:2015-08-13 16:12:09

标签: jquery html css jquery-selectors css-selectors

我有以下标记: - enter image description here

现在我想使用CSS选择器来最大化850到900的宽度。但我想指定我想要展开的TD应该匹配以下内容: -

  • 位于具有class = ms-formtable
  • 的表中
  • 和TR内部
  • <nobr>标记内包含“描述”字样的TD之后。

有人可以这样做吗?

1 个答案:

答案 0 :(得分:1)

如果您可以将td的内容添加到这样的data attribute中:

<td data-td-content="Description">Description</td>

然后你可以使用

td[data-td-contents="description"] + td 

作为CSS选择器。但这是如此具体,即使更改大写字母也会使规则无效。不是真的推荐,但可能。它还会使您传递和处理的数据量翻倍,从而使页面大小翻倍。不理想。

您也可以使用:contains()选择器为此使用jQuery。您可以执行以下操作:

$("td:contains('Description') + td")

这将返回包含文本值的td之后的元素,然后您可以使用该元素。下面是一个片段中的示例,显示它有效:

$("td:contains('description') + td").addClass('selected')
.selected {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<table>
  <tr>
    <td>title</td>
    <td>My Title</td>
  </tr>
  <tr>
    <td>description</td>
    <td>My Description</td>
  </tr>
 </table>

当然,这也要求您也可以访问该脚本。否则没有直接的方法可以选择这样的东西。

文档:https://api.jquery.com/contains-selector/