我正在尝试选择特定的< td>使用jQuery的.filter()选项在行内的元素。
它适用于Chrome和IE,但不适用于Firefox。还有另一种方法可以在所有3中使用吗?或者至少在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);
这是脚本和标记的fiddle
答案 0 :(得分:1)
试试这个:
alert($('#r1').children('td[abbr="EventID"]')[0].innerHTML);
答案 1 :(得分:1)
因为只有一个元素不在数组中,所以不需要[0]。 (您可能希望将来进行检查以防止错误)。此外,它似乎只在Firefox中使用text()而不是innerText。
我在Firefox中使用的最终代码:
alert($('#r1').children('td[abbr="EventID"]').text());
答案 2 :(得分:0)
如果要获取行列表并进行过滤或迭代,请尝试以下操作。
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);
}