firefox 3.5.9中的Jquery查找行为

firefox 3.5.9中的Jquery查找行为,jquery,jquery-selectors,Jquery,Jquery Selectors,我的页面上有以下HTML代码: <tr> <td> <div> <input type="hidden" name="test" value=""> <input autocomplete="off" class="ffb-input watermark"> <div class="ffb"> <div class="content">

我的页面上有以下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>
但是什么也没有归还。当我像这样使用find时:

tr.find('div input:hidden')
tr.find('div input[type=hidden]')
一切正常。这种行为的原因是什么?
我只在FireFox 3.5.9中观察到这一点,而不是在3.6.3、Jquery 1.4.2中,
类型
属性似乎没有考虑到
: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 );
    };
}

我看不出任何明显的错误,但您可以尝试调试此代码并提交修补程序,也许..

实际上,它与
input type=“hidden”
-@dragoon-抱歉,没有注意到这个细节。您可能想提交一个bug。什么是
警报(tr.find('div input[type=hidden')).width()
警报(tr.find('div input[type=hidden')).height()在FF 3.5.9中给出?是的,你是对的,FF 3.5.9给出的宽度值为162,而FF 3.6.3给出的是零。