1.4.3の機能-FF3.6.11に現れる
簡単な例:
<table> <tr> <td myAttr='1'>1.1</td> <td>1.2</td> <td>1.3</td> <td myAttr='1'>1.4</td> </tr> <tr> <td myAttr='1'>2.1</td> <td>2.2</td> <td>2.3</td> <td myAttr='1'>2.4</td> </tr> </table>
以前、1.4.3より前では、次のjQuery命令を実行した結果は2でした(要素1.2および1.3が選択されました)
$('tr').eq(0).find('td').eq(0).nextUntil('td[myattr=1]').length
1.4.3では、結果は... 3になります(要素1.2、1.3、および1.4が選択されます)。
どうやら、ポイントはjQueryの検索アルゴリズム、つまりmatchesSelectorを使用するように切り替えることです。 動作を正しい方向に戻すには、属性値を引用符で囲む必要があります。
$('tr').eq(0).find('td').eq(0).nextUntil('td[myattr="1"]').length
%username%の簡単なデバッグ!
UPD :興味深いことに、IE8(およびおそらくIE <9)は「バグ」の影響を受けません。 matchesSelectorが実装されていないだけです!
UPD :これはFF3.6.11のバグである疑いがあります。 Chrome7では(matchesSelectorがあります!)バグは再生されません。