1

最近、Prototype 1.6.1 から 1.7 にアップグレードしたところ、サイトの JS の一部が壊れていることに気付きました。

私は本質的にこれをやっています:

$$("*[required=1]").each(function (el) {
  // stuff
});

これは、一連のフォーム要素を選択しています。1.6.1 では、これは完全に機能しました。1.7 にアップグレードしたので、これは<select>フォーム内の要素を返すだけでなく、要素も返しません<input>...

Prototype が 1.7 で古いセレクター エンジンから Sizzle に変更されたことは知っているので、それが関係していると思いますが、この基本的なものが壊れてしまうことに驚いています...

間違った構文を使用していますか? 1.6 にダウングレードせずに、これを回避する方法を教えてください。

4

1 に答える 1

1

さて、属性値の周りに一重引用符を追加することで、少し実験してみましたが、CSSセレクターの仕様に基づいてこれは間違っているようですよね?
特に、selectは返されますが、inputは返されません。

$$("*[required='1']").each(function (el) {
  // stuff
});

誰かが同じことにつまずいた場合に備えて、これを投稿するだけです。

于 2011-02-08T00:48:19.060 に答える