如何截断 table 中特定列的字符?

How can I cut off characters from a specific column in a table?

这里有很多类似的问题,但是 none 这些解决方案似乎有效。我有一个 table,其中的内容是通过一些巫术动态加载的,我想从每行的第一个 <td> 中取出前 4 个字符。该行的类名是 "task-name".

<tbody class="row maintask" ng-repeat="task in job.Tasks">
    <tr class="task-name">
        <td class="col-sm-7">{{task.TaskName}}</td>
        <td class="col-sm-4 col-sm-offset-1">{{task.TaskStatusStageDisplay}} <span ng-show="{{task.IsFailed}}||{{task.HasWarnings}}"><a href="{{task.StatusActionUrl}}" class="btn btn-sm btn-default pull-right" target="_Blank"> Errors</a></span> 
        </td>
    </tr>
    <tr class="subtask1 task-name" ng-repeat-start="subtask in task.SubJobTasks" ng-include="'tree_item.html'"></tr>

我试过:

var text = '.task-name'.substring(4); 

$('.task-name').substring(4);

以及其他一些变体,包括使用 substrslice。我还在页面上的其他元素上尝试过它以查看 table 是否是问题所在,但这也没有用。有任何想法吗?干杯。

到目前为止,我已经尝试了每个人的建议,但没有任何效果,即使我尝试了不同的方法 类,buuuuut...。当我尝试时,我并没有说这是在模式中发生的它在不在模式中的元素上起作用!真的不希望模式会影响它,除非它更多地与 table 的填充方式有关,但这些东西让我头疼。

从你更新的问题中看出你正在使用 AngularJS,我会创建一个过滤器:

<td class="col-sm-7">{{task.TaskName | removeFour}}</td>

.

angular.module(...)
  .filter('removeFour', function() {
    return function(data) {
        return data.slice(4);  // everything starting with index 4 (char 5)
    };
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice

直接 DOM 和数据最小化违反了 Angular 的整个 MVC 概念。 Read more

已更新 - 用 class 删除任何 tr 中的第一个 td task-name:

$('.task-name td:first-child').text(
  function() {
    return $(this).text().substring(4);
  }
);
td {
  background-color: #F0F0F0;
  padding: 2px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<table>
  <tr class="task-name">
    <td>first column</td>
    <td>other</td>
    <td>other</td>
  </tr>
  <tr class="task-name">
    <td>first column</td>
    <td>other</td>
    <td>other</td>
  </tr>
  <tr class="task-name">
    <td>first column</td>
    <td>other</td>
    <td>other</td>
  </tr>
</table>

$('.task-name td:first-child').each(function() {
    var str = $(this).text().substring(0, 4);
    console.log(str);
});

jsfiddle DEMO

I want to take the first 4 characters from the first td of each row off. The row has a classname of "task-name".

看到这个:

$(".task-name td:first-child").text(function (i,n){ return $(this).text().substring(4)})

http://jsbin.com/zaxena/4/edit