如何在Javascript中访问表中的元素?

时间:2014-03-08 23:00:22

标签: javascript html asp.net

我的html看起来像这样,

<table id="TableAddresses">
    <tbody>
                <tr>
                    <td>
                        string 1
                    </td>
                    <td>
                    <input type="hidden" id='ADDR_843886'
                    <div id='FLAG_843886'>Pending...</div>

                    </td>
                </tr>
                <tr>
                    <td>
                        string 2
                    </td>
                    <td>
                    <input type="hidden" id='ADDR_843886'
                    <div id='FLAG_843886'>Pending...</div>

                    </td>
                </tr>

如何获取TableAddresses中的所有字符串&gt; tbody&gt; tr&gt; TD [0]

编辑:

我在标记jquery时出错了。这实际上是一个asp.net项目。

5 个答案:

答案 0 :(得分:1)

一种简单的方法是使用querySelectorAll

var td = querySelectorAll("#TableAddresses tbody td")[0];

否则你可以做到

var table = document.getElementById("TableAddresses");
var tbody = table.getElementsByTagName("tbody")[0];
var tr    = tbody.getElementsByTagName("tr")[0];
var td    = tr.getElementsByTagName("td")[0];
// etc

答案 1 :(得分:1)

你可以试试这个:

document.getElementById('TableAddresses').firstChild.firstChild.firstChild.innerHTML

或遗留支持较少:

document.querySelector('#TableAddresses td').innerHTML

答案 2 :(得分:1)

您可以使用map方法:

var strings = $('#TableAddresses td:first-child').map(function() {
    return $.trim( this.textContent || this.innerText );
}).get(); // ["string 1", "string 2"] 

或者,您可以阅读HTMLTableElementrows属性:

var rows = document.getElementById('TableAddresses').rows, 
    strings = [];

for (var i = 0; i < rows.length; i++) {
    if ( rows[i].cells[0] ) {
       strings.push( rows[i].cells[0].innerHTML );
    }  
}

http://jsfiddle.net/kvyUh/

答案 3 :(得分:0)

使用jQuery:

var myString = $('#tableAddress td:first').text()

干杯!

答案 4 :(得分:0)

这个主题有一个MDN article。简而言之,您需要使用标准方法遍历表格,主要是getElementsByTagName,请参阅此jsBin(在控制台中查看)。

var table =  document.getElementById("TableAddresses");

var rows = table.getElementsByTagName("tr");
Array.prototype.forEach.call(rows, function(ele, idx) {
  console.log(ele.getElementsByTagName("td")[0].textContent.trim());
});

此代码段遍历表格的每一行,并输出第一个textContent元素的<td>。请注意,这很可能不会在旧的IE版本iirc上开箱即用,但没有什么是无法填充的。 ; - )