firefox 3.5.9中的Jquery查找行为
我的页面上有以下HTML代码: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">
<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给出的是零。