将文本插入到某个索引

时间:2015-06-18 19:48:21

标签: jquery

以下是否可以实现?

给定一串表格单元格:

var str = "<td></td><td></td><td></td>";

是否可以将此字符串转换为这样的jQuery对象,并通过索引将文本添加到任何表格单元格中:

var index = 1;
$(str).eq(index).text("Some text");

然后将对象转换回字符串以与现有表格中的其余表格单元格连接。

上面的代码似乎不起作用。有没有办法做到这一点?

感谢。

4 个答案:

答案 0 :(得分:1)

只用字符串操作:

    var str = "<td></td><td></td><td></td>";
    var desiredIndex=1;
    var desiredText="Some Text";
    var output="";
    
    var tmp=str.split("</td>").slice(0, -1);
    
    for(var i=0;i<tmp.length;i++){
        output+=tmp[i];
        if(i==desiredIndex){output+=desiredText;}
        output+="</td>";
    }
    alert(output);

答案 1 :(得分:0)

使用jquery each()函数来解决这个问题。喜欢以下....

$('td').each(function(k,v){
  
  if(k==1){
    
    $(this).html("my text");
    
    }
  
});

答案 2 :(得分:0)

这是一个可能的解决方案:

首先,应将您的字符串添加到表中。然后,您可以在所需的单元格中插入文本。这是一个示例代码:

$('#insert1').on('click', function(){
  
  var thirdCell = $('#datatable >tbody').find('tr:first > td')[2];
  
  $(thirdCell).text('100');
  
});

$('#insert2').on('click', function(){
  
  var secondRow = $('#datatable >tbody').find('tr')[1];
  var secondCell = $(secondRow).find('td')[1];
  
  $(secondCell).text('200');
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="datatable">
  <thead><tr><td>Column A</td><td>Column B</td><td>Column C</td></tr></thead>
  <tbody>
    <tr><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td></tr>
  </tbody>
</table>
<br/>
<button id="insert1">Insert value in 3rd cell in 1st row</button>
<br/>
<br/>
<button id="insert2">Insert value in 2nd cell in 2nd row</button>

答案 3 :(得分:0)

要转换回字符串,您可以尝试:

var str = "<td></td><td></td><td></td>";

var $celts = $(str);

$cells.eq(1).text("Some text");

str = $('<div></div>').append($cells).html();

但你应该能够完成你想要的而不将其转换回字符串。