re:jQueryとSafariとか | 眠る開発屋blog

jQueryとSafariとか | 眠る開発屋blog

Firefoxとかでは、a、b、cともにalertで表示されるが、Safariの場合、bがundefinedになる。
まぁ確かに input タグの位置は少し気持ち悪いのだが。

http://www.developer0000.jp/2009/02/04/3634/

少しじゃなくてだいぶ気持ち悪いと思うけど、気になったので調べてみた。
$('tr.a .b').val()がundefinedになるというか
$('tr.a .b')で取れている要素が0件になっている模様。


DOMツリーがどうなってるのか気になったのでSafariのWebインスペクタで見てみた。

HTMLではtrの直下にあったhiddenフィールドが
DOMツリーではtableの外のfromの直下にある。


どうもSafariではtr要素の直下にinput要素があるのは不正とみなされて、
不正な場合はその要素が属するform要素の直下にあるものとして解釈するようですな。