Jquery найти поведение в Firefox 3.5.9 - PullRequest
0 голосов
/ 14 июня 2010

У меня есть следующий фрагмент HTML-кода на моей странице:

<tr>
  <td>
    <div>
      <input type="hidden" name="test" value="">
      <input autocomplete="off" class="ffb-input watermark">
      <div class="ffb">
        <div class="content">
        </div>
      </div>
    </div>
  </td>
</tr>

В JavaScript я получаю элемент <tr> с помощью jquery и пытаюсь найти ввод следующим образом:

tr.find('div input:hidden')

но ничего не возвращается. Когда я использую найти, как это:

tr.find('div input[type=hidden]')

Все работает нормально. В чем причина такого поведения? Я наблюдаю это только в FireFox 3.5.9, а не в 3.6.3, Jquery 1.4.2

1 Ответ

0 голосов
/ 14 июня 2010

Атрибут type, похоже, не учитывается для селектора :hidden. Как отмечено в комментариях, это должно быть, поэтому вы можете сообщить об ошибке .

Это, похоже, код для :hidden:

if ( jQuery.expr && jQuery.expr.filters ) {
    jQuery.expr.filters.hidden = function( elem ) {
        var width = elem.offsetWidth, height = elem.offsetHeight,
            skip = elem.nodeName.toLowerCase() === "tr";

        return width === 0 && height === 0 && !skip ?
            true :
            width > 0 && height > 0 && !skip ?
                false :
                jQuery.curCSS(elem, "display") === "none";
    };

    jQuery.expr.filters.visible = function( elem ) {
        return !jQuery.expr.filters.hidden( elem );
    };
}

Я не вижу ничего явно неправильного, но вы можете попробовать отладить этот код и отправить патч, возможно ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...