以下是否可以实现?
给定一串表格单元格:
var str = "<td></td><td></td><td></td>";
是否可以将此字符串转换为这样的jQuery对象,并通过索引将文本添加到任何表格单元格中:
var index = 1;
$(str).eq(index).text("Some text");
然后将对象转换回字符串以与现有表格中的其余表格单元格连接。
上面的代码似乎不起作用。有没有办法做到这一点?
感谢。
答案 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();
但你应该能够完成你想要的而不将其转换回字符串。