Rafael Souza Desenvolvimento Web

Posted
29 June 2009 @ 6pm

Tagged
javascript, jquery

jQuery, Safari e CSS Selectors

Hoje estava verificando um bug em um projeto, que acontecia somente no Safari, tanto no MacOS, quanto no Windows, e descobri que o problema era a forma como eu estava definindo o elemento HTML envolvido na história.

O expressão que eu estava usando era a seguinte:

$("#meuform input[type='hidden'][value='']").length

No Safari sempre me retornava 0, já no Firefox e Internet Explorer, retorna 1, que era para ser o valor certo no caso. Analisando como o input estava definido eu descobri o problema, ele estava definido assim:

<input type="hidden" name="first_user" />


Resumindo:

O Safari não acha elementos onde o atributo filtrado não esteja presente no HTML.
(Estou usando a versão 1.3.2 do jQuery e 4.0 (503.17) do Safari, no Windows, mas reportaram o problema no Mac também)


1 Comment

Posted by
Alex Saueressig
29 June 2009 @ 9pm

Tinha um cara lá na empresa com esse mesmo problema hoje de tarde.
Era problema de contexto.


Leave a Comment