問題タブ [sizzle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - Sizzle を使用して XML ファイルを解析しますか?
jQuery を使用して一連の XML ファイルから情報を解析および抽出するためのライブラリーを作成しました。したがって、次のようなことを行うのは非常に簡単です。
次に、私の小さなライブラリがすべての jQuery に依存する必要はなく、Sizzle ライブラリを使用するだけで必要なものを取得できる可能性があることに気付きました。しかし、私はすぐに問題を抱えています。
Sizzle には parseXML 関数がないようです。XML テキストのチャンクを渡して、検索可能なオブジェクトを取得する方法はありますか?
Sizzle の find 関数にコンテキストを渡すことができることに気付きました。ただし、 Sizzle.find(".title", xmlText) は何も見つかりませんでした。
何か案は?上記で jQuery を使用していたのと同じ方法で、Sizzle を使用して XML を解析することは可能ですか?
注: これをヘッドレス方式または Node 上で実行できるようにしたいので、DOMParser のようなブラウザーの依存関係を使用したくありません。
javascript - プロトタイプを持つ複数のCSSセレクター
現在次のようになっているコードをリファクタリングしています。
最初のセレクターを切り替えて、IDを1行にチェックしたいと思います。これは、次の行に沿ったものです。
ただし、複数のセレクターは機能していませんが、各セレクター自体は正常に機能します。これが構文の問題なのか、プロトタイプのドキュメントでこれが機能するはずだと言っているのかはわかりませんが、セレクターを追加するとすぐに機能しません。
これが機能することを確認するには:
そしてこれは機能します:
しかし、これはどちらも選択できません(エラーをスローせずに)
attributes - 属性を持たない要素を返すことができますか?
シズル クエリを使用して、Web ページから属性のない要素を抽出する実験を行っています。
属性を指定することで、要素を簡単に返すことができます。例: doc.Tables.Filter(Find.BySelector("[ID='abc']")) は ID='abc' の要素を返します
属性をまったく持たないすべての要素を返す方法はありますか? これは私が撮影しているものです: doc.Tables.Filter(Find.BySelector("[]")) '属性のないすべての要素を返す ありがとうケン
javascript - jQuery 1.5.1シズル「プロパティノード名を読み取れません」子「>」ノックアウトjsのセレクター
jQuery 1.5.1 と Knockoutjs 2.0.0 を使用しています。私の状況は少し複雑ですが、私が理解しているように、次のことが起こっています。
jQuery.liveバインディングも持つKnockoutjsにバインドされた要素がいくつかあります。これらのバインディングの一部には、子 (親?) セレクター「>」が含まれています。(Knockout を使用して) 要素を削除すると、次のエラーが発生します。
キャッチされていない TypeError: null のプロパティ 'nodeName' を読み取れません
jQuery の次のコードによってスローされます。
jQuery がライブ バインディングをチェックする前に Knockout がドキュメントから要素を削除しているように見えるため、要素が最終的にチェックされるとその親が null になり、このエラーがスローされます。
私の質問:
これをどこで/どのように修正することをお勧めしますか? 私は次のようなことを考えていました:
親がnullの場合、「>」セレクターは失敗するはずですが、それについては間違っている可能性があります。あなたたちはどうしますか?
アップデート:
問題を示す JSFiddle (テーブルの行を削除してみてください):
これは、以下のセレクターの 1 つを .live バインディングに使用した場合にのみ発生します。:not セレクターで 1 つのクラスのみを使用すると、バグが消えます。
regex - これは何を意味するのでしょうか?式を使用してどの文字列が一致しますか?
シズルコードを確認し、定義を確認しました。
この正規表現が一致する文字列を見つける方法を知りたいですか?
javascript - Sizzleを使用してキャッシュされたノードの子要素を選択します
シズルに精通している人はいますか?キャッシュされたDOMノードの子を選択するためのサポートはありますか?jQueryのように:
あなたの親切な助けのための10倍、BR
javascript - 非標準のセレクターを使用せずに、jQueryにSizzleを使用してセレクターを評価させることはできますか?
最新のブラウザーでは、jQueryはdocument.querySelectorAll()
、有効なCSSセレクターが使用されている場合にパフォーマンスを向上させるために使用します。document.querySelectorAll()
ブラウザがセレクタまたはメソッドをサポートしていない場合は、Sizzleにフォールバックします。
ただし、カスタムセレクターをデバッグするときは、ネイティブ実装ではなく常にSizzleを使用したいと思います。つまり、 jQueryでサポートされていないCSS3セレクターの1つで:nth-last-child()
あるの実装を考え出そうとしています。このセレクターは最新のブラウザーでネイティブにサポートされているため、リンクされた質問で説明されているように機能します。ただし、カスタムセレクターのデバッグを妨げるのはまさにこの動作なので、避けたいと思います。
私が使用できる安価なハックは、非標準のjQueryセレクター拡張機能をドロップすることです。これにより、いわばセレクターが「無効化」されます。たとえば、すべてli:nth-last-child(2)
が表示されていると仮定すると、これをドロップするだけで次のようになります。
これに:
これにより、常にSizzleによって評価されます。ただし、これには、自分のページ要素を想定する必要がありますが、これは正しい場合とそうでない場合があります。そして、私は本当にそれが好きではありません。言うまでもなく、どうしても必要な場合を除いて、一般的に非標準のセレクターを使用するのは嫌いです。
それをサポートするブラウザーでネイティブメソッドをスキップし、document.querySelectorAll()
jQueryに代わりにSizzleを使用してセレクターを評価させる方法はありますか?非標準のセレクターの使用を使用しないことが望ましいですか?おそらく、これにはの代わりに別のメソッドを呼び出す必要があり$()
ますが、セレクターハックIMOよりもはるかに優れています。
jquery - jQuery 1.8の「サポートされていない疑似」エラーを修正するにはどうすればよいですか?
私が使用しているプラグインはに依存しています$(':animated')
が、jQuery 1.8.0にアップグレードしたため、これはエラーをスローします。
キャッチされないエラー:構文エラー、認識されない式:サポートされていない疑似:アニメーション
jQuery 1.8.0は、Sizzleでの変更の一部として、このカスタムセレクターのサポートを終了しましたか?これを修正するにはどうすればよいですか?
jquery - 認識されない式: :[type=checkbox] with jQuery 1.8
コードを jQuery 1.8 に更新すると、次のエラーが発生し始めます。
もちろん、これは式:[type=checkbox]
が新しいバージョンのjQueryで認識されないということであり、私の質問は次のとおりです。
間違った方法で入力しましたか、それともバグですか?
jsFiddle http://jsfiddle.net/4y8tb/6/でテスト用にこのバージョンを作成し、コンソールを開いてログを表示します。jQuery のバージョンを変更すると、動作するバージョンと動作しないバージョンが表示されます。
他の構文 ( など:[type="checkbox"]
) を試しましたが、失敗します。