2

私は最近、順序付けられていないリストに対して単純な表示/非表示操作を行う小さなスクリプトを作成しました。

私の理解では、jQuery は、問題の要素が存在する場合にのみ関数を実行します (したがって、それが「true」の場合)。そのため、要素の長さが 0 より大きいかどうか、親ノードが body であるかどうかなどを確認するためのチェックを行う実際的な理由はありません。正しい?

上記が正確である場合、そのようなチェックが実際に役立つのはいつですか?

http://jsbin.com/ehicik/1/edit

4

4 に答える 4

3

その通りです。jQuery は、メソッドが存在する場合にのみ、呼び出されたメソッドを試行します。

ただし、次を使用します。

if($("#someElement").length) { ... Do Stuff };

jQuery と JavaScript を組み合わせて使用​​している場合、非常に便利です。jQuery ではすべてを達成できないことが多く、存在しないオブジェクトに対して JavaScript 操作を試みると、スクリプト エラーが発生します。

たとえば、「請求先住所」から「配送先住所」をコピーしたいのですが、商品が発送可能な場合 (ダウンロードした商品は配送が不要)、私のページには「配送先住所」のみが表示されます。そのため、「配送先住所」が存在するかどうかを確認します。 jQueryでさらに作業を行う前に。

これは単なる大まかな例であり、jQuery ボタンも同様にレンダリングできなかったことに感謝します.js。 .

そこで、オブジェクトが存在するかどうかを確認します。

于 2012-09-21T10:30:26.020 に答える
2

要素が存在しない場合に実行したいアクションがエラーに連鎖する可能性がある場合は、最初にチェックを行うと役立ちます。かなり些細なこと (表示/非表示など) は、おそらくチェックする必要はありません。

(ただし、すべてが意図したとおりに機能し、正常に失敗することを確認することは、プログラミングの良い実践方法です。チェック、または少なくとも try... catch ステートメントが役立ちます。)

于 2012-09-21T10:23:08.930 に答える
0

要素が実際に存在することがあなた/あなたのスクリプトにとってどれほど重要であるかによって異なります。スクリプトの残りの部分が要素から取得する必要のあるデータに依存していて、その要素が存在しない場合は、その要素に対する作用について知りたいと思います。その場合、チェックは明らかに非常に便利です。

単純な表示/非表示の場合、これの必要性はおそらく最小限です。

于 2012-09-21T10:24:43.907 に答える
0

ここで、 length プロパティは によって選択された要素の数を返します$('#id')。ゼロを返す場合は、アイテムが一致または選択されていないことを意味します。

<script>
        $(document).ready(function () {
            alert($('#id').length);
        });
 </script>
于 2012-09-21T10:26:06.113 に答える