如何截断 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);
以及其他一些变体,包括使用 substr
和 slice
。我还在页面上的其他元素上尝试过它以查看 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);
});
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
这里有很多类似的问题,但是 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);
以及其他一些变体,包括使用 substr
和 slice
。我还在页面上的其他元素上尝试过它以查看 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);
});
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