如何动态地向表头添加文本

时间:2014-07-01 14:14:19

标签: jquery html

我想动态地向表头添加文本,但我想不出任何东西。

这是我向div添加文字的方式,

var textForDiv1 = getFromArray.ResourceKey;
$("#someDIVId").text(textForDiv1);

并且它有效,但我如何才能为<th>执行相同操作?

修改

Html是动态添加的,但这就是我添加

的方式
    var someRow= "<tr class='someClass' ><th>text1</th><th>text2</th></tr>"; // add resources
    $("#Table").append(someRow);

5 个答案:

答案 0 :(得分:3)

您可以使用任何有效的CSS选择器以与在页面上选择其他元素(如div)相同的方式选择元素。例如,如果您想动态更改此表的表头:

<table>
  <tr>
    <th>One</th>
    <th id='th-two'>Two</th>
    <th class='tablehead'>Three</th>
  </tr>
</table>

你可以这样做:

<script>
 // change the first table header
 var newTableHeader = 'Five';
 $('table th').eq(0).text( newTableHeader );

 // change the second table header
 var newTableHeader = 'Four';
 $('th#th-two').text( newTableHeader );

 // change the third table header
 var newTableHeader = 'Six';
 $('.tablehead').text( newTableHeader );
</script>

答案 1 :(得分:2)

如果你想在表格的所有th上设置一些文字,那么就这样做:

    $("#Table th").each(function () {

     $(this).text("Dummy text")
 })

FIDDLE EXAMPLE

您可以执行每个th中的动态和不同内容:

var temp = new Array();

temp.push("text1");
temp.push("text2");
var i =0;
 $("#Table th").each(function () {

     $(this).text(temp[i])
     i++;
 })

FIDDLE

答案 2 :(得分:2)

在创建标题时为您的标题添加ID,并像访问任何其他元素一样访问它们:

$(function(){
 var someRow= "<tr class='someClass' ><th id='header1' >text1</th><th>text2</th></tr>"; // add resources
    $("#Table").append(someRow);

    $("#header1").text("Banana");
});

Example

答案 3 :(得分:0)

如果您拥有th,则可以通过其唯一id标识每个id

正如我从您的示例中看到的那样,nth-child并非如此。因此,您需要使用$("#tab").find("tr.someClass").first().children("th:nth-child(1)").text("Header One"); $("#tab").find("tr.someClass").first().children("th:nth-child(2)").text("Header Two"); 选择器来定位它们。

演示:http://jsfiddle.net/abhitalks/CYVH4/1/

相关JS

nth-child(n)

因此,您使用.eq(n)来定位您所追求的细胞。或者,您可以使用jQuery $("#tab tr.someClass").eq(0).children("th").eq(0).text("Header One"); 来定位特定的单元格。

{{1}}

答案 4 :(得分:0)

在限定符中加入thead

<table id="Table">
  <thead></thead>
  <tbody></tbody>   
</table>

使用thead

添加#Table
var someRow= "<tr class='someClass' ><th>text1</th><th>text2</th></tr>"; // add resources
$("#Table thead").append(someRow);