1

jQuery の .filter() オプションを使用して、行内の特定の < td > 要素を選択しようとしています。

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);

ここにスクリプトとマークアップのフィドルがあります

4

3 に答える 3

1

要素が1つしかないため、配列には含まれません。したがって、[0]は必要ありません。(エラーを防ぐために、将来的にチェックを行うことをお勧めします)。また、FirefoxではinnerTextではなくtext()を使用した場合にのみ機能するように見えました。

Firefoxで動作した私の最終的なコード:

alert($('#r1').children('td[abbr="EventID"]').text());

http://jsfiddle.net/3fcdH/3/

于 2012-11-15T15:36:36.590 に答える
1

代わりにこれを試してください:

alert($('#r1').children('td[abbr="EventID"]')[0].innerHTML);

</p>

于 2012-11-15T15:35:51.193 に答える