我的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项目。
答案 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"]
或者,您可以阅读HTMLTableElement
的rows
属性:
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 );
}
}
答案 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上开箱即用,但没有什么是无法填充的。 ; - )