我正在尝试选择一个特定的<td>元素。
它在Chrome和IE中运行良好,但在Firefox中则不然。有其他方法可以做到这一点吗?或者至少在Chrome和Firefox中?
HTML:
<table>
<tr id="r1">
<td abbr='EventID'>1</td>
<td>a</td>
</tr>
<tr id="r2">
<td abbr='EventID'>2</td>
<td>a</td>
</tr>
<tr id="r3">
<td abbr='EventID'>3</td>
<td>a</td>
</tr>
<tr id="r4">
<td abbr='EventID'>4</td>
<td>a</td>
</tr>
</table>
Javascript:
alert($('#r1').children('td').filter('[abbr="EventID"]')[0].innerText);
这是一个篡改的脚本和标记
因为只有一个元素,所以它不会在数组中,所以不需要[0]。(您可能希望以后进行检查以防止出现错误)。此外,它似乎只在Firefox中使用text()而不是innerText。
我在Firefox中工作的最后一个代码:
alert($('#r1').children('td[abbr="EventID"]').text());
http://jsfiddle.net/3fcdH/3/
请尝试以下操作:
alert($('#r1').children('td[abbr="EventID"]')[0].innerHTML);
如果您想获得一个行列表并对其进行筛选或迭代,请尝试以下操作。
HTML
<table>
<tr class="row"><td abbr='EventID'>1</td><td>a</td></tr>
<tr class="row"><td abbr='EventID'>2</td><td>a</td></tr>
<tr class="row"><td abbr='EventID'>3</td><td>a</td></tr>
<tr class="row"><td abbr='EventID'>4</td><td>a</td></tr>
</table>
JavaScript
for (int i = 0; i < = 3; i++){
alert($('.row').children('td').filter('[abbr="EventID"]')[i].innerText);
}