5

Javascript でのチルダの機能についての私の理解は、それがビット単位の not 操作を実行することです (つまり、1 は 0 になり、その逆、1000 は 0111 になります)。しかし、私は最近、前任者が次のような多くのコードを含んでいた既存のプロジェクトに取り組み始めました。

var iValuation = $('div[class~="iValuation"]');

この場合のチルダの目的を誰か教えてもらえますか? 私はこれまでに遭遇したことがなく、オンラインでそれへの参照を見つけることができませんでした.

4

4 に答える 4

11

セレクタ手段として使用されるタイル

スペースで区切られた、指定された単語を含む値を持つ指定された属性を持つ要素を選択します。

これはまったく JavaScript 演算子ではありません。

ドキュメントからの詳細:

このセレクターは、属性値の各単語に対してテスト文字列を照合します。「単語」は、空白で区切られた文字列として定義されます。テスト文字列がいずれかの単語と正確に等しい場合、セレクターは一致します。

例えば:

<input name="man-news" />
<input name="milk man" />
<input name="letterman2" />
<input name="newmilk" />

$('input[name~="man"]')inputは、属性nameが で区切られているため、 second のみを選択しますspace

詳細はこちら

于 2013-02-18T16:22:33.617 に答える
3

これは JavaScript 演算子ではありません。文字列で表示されます。

その文字列は jQuery 関数に渡され、HTML のようには見えないため、セレクターです。

具体的には、属性セレクターの 1 つ:

値が空白で区切られた単語のリストであり、そのうちの 1 つが正確​​に「val」である att 属性を持つ要素を表します。「val」に空白が含まれている場合は、何も表されません (単語がスペースで区切られているため)。また、「val」が空の文字列の場合、何も表されません。

于 2013-02-18T16:23:01.637 に答える
3

$jQuerySelector Stringを含むセレクター関数です: Selector DefinitionCSS3によると、遭遇したセレクターは以下を選択します:CSS3

E[foo~="bar"] "foo" 属性値が空白で区切られた値のリストであり、そのうちの 1 つが "bar" と正確に等しい E 要素

DOM。チルダは文字列でラップされているため、演算子として機能していません。

于 2013-02-18T16:24:41.947 に答える
2

の違いが気になる場合は、

[class~="foo"]

[class*="foo"]

~前後に空白がある場合のみ一致します (例: 'foo bar' で 'foo-1' ではありません)前後に空白がない場合 (例: 'foo bar' と 'foo -1')
*と一致します

~- 属性間隔セレクター
*- 属性を含むセレクター

于 2016-11-29T20:10:21.127 に答える