如何从表格中的特定列中删除字符?

时间:2015-05-19 13:38:27

标签: javascript jquery angularjs substring slice

这里有很多类似的问题,但这些解决方案似乎都不起作用。我有一个表通过一些伏都教来动态加载内容,我希望从每行的第一个<td>中取出前4个字符。该行的类名为&#34;任务名称&#34;。

<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。我也尝试过在页面上的其他元素上查看表格是否是问题,但这也没有奏效。有任何想法吗?欢呼声。

到目前为止,我只是尝试了所有人的建议而且没有任何工作,即使我尝试不同的课程,buuuuut ....我没有说这发生在一个模态,当我尝试它的元素而不是它工作的模态!真的不会期望一个模态会影响它,除非它更多地与表格的填充方式有关,但这些东西超出了我的想象。

4 个答案:

答案 0 :(得分:1)

已更新 - 使用课程td切断任何tr中的第一个task-name

&#13;
&#13;
$('.task-name td:first-child').text(
  function() {
    return $(this).text().substring(4);
  }
);
&#13;
td {
  background-color: #F0F0F0;
  padding: 2px;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

从您更新的问题中看到您正在使用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

答案 2 :(得分:0)

$(document).ready(function () {
size_li = $("#myList li").size();
x=3;
$('#myList li:lt('+x+')').show();
 $('#showLess').hide();
$('#loadMore').click(function () {
    x= (x+5 <= size_li) ? x+5 : size_li;
    $('#myList li:lt('+x+')').show();

    if(size_li == x){
        $(this).hide();
    }else{
        $('#showLess').show();
    }
});
$('#showLess').click(function () {
    x=(x-5<0) ? 3 : x-5;
    $('#myList li').not(':lt('+x+')').hide();        
    if(x <= 3){
        $('#showLess').hide();
    }else{
       $('#loadMore').show(); 
    }
});

jsfiddle DEMO

答案 3 :(得分:0)

  

我想从每行的第一个td 中获取前4个字符   关闭即可。 的分类名称为“任务名称”

见:

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

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

enter image description here