なぜ記述方法が異なると結果が異なるのでしょうか? 論理的に言えば、同じ関数が半分しか実行されないわけではありません。
ringa_lee
$(function(){//これは、ページがロードされた後に実行されるコードです})最初の書き方は、ページがロードされる前に実行されるため、DOM は変更されません。色付き
2つ目は.ready()の略称です。詳細についてはドキュメントを確認してください。
.ready()
通常、js 参照は <head></head>里面,第一种写法执行的时候,页面还没加载完,所以找不到$(".table tr:odd") セレクターに配置されます。 2 番目のタイプはページがロードされた後に実行されるため、セレクターの色を変更できます。
<head></head>
$(".table tr:odd")
2 番目の方法を使用するか、ページの最後に js 参照を追加します。
最初の書き方では、コード実行時にテーブル要素がページに読み込まれていない可能性があるため、要素が見つからないため色の変化はありません。 2 番目の記述方法は、コードを実行する前にページ要素がロードされるのを待つことです。これにより、ページ上のすべての要素がロードされ、コードが必要な要素を見つけることができるため、対応する変更が行われます。
リーリー
2 つの呼び出しの違いは、最初に $(".table tr:odd") を呼び出したときは DOM がロードされていないため、対応する要素を取得できなかった可能性があります。印刷して確認できますが、2 回目では確実に取得できています。
その前にJS 代码或引入的 JS 文件放在页面底部,<BODY>を置くことをお勧めします。
JS
<BODY>
1階の回答と同様に、最初の書き方では、.tableタグの前に配置してdomがロードされる前に実行すると、$セレクターがdomを見つけられず、色を指定できない場合があります。かわった。
2 つ目については、jquery ドキュメントの説明を確認することをお勧めします。ここでは jquery 公式 Web サイトを開くことができないため、別の場所から読むことができます http://www.css88.com/jqapi-1。 ...
1. 最初の書き込み方法は、ドキュメントタグがロードされていないときに実行することです。つまり、HTML がロードされていない場合、その中の .table tr:odd にスタイルを追加すると、js スクリプトはそれがどのオブジェクトであるかを認識しないため、未定義になります。要素の読み込みが完了していません。ただし、関数には構文エラーがないため、alert 02.$(function(){}) は引き続き実行されます。つまり、内部のメソッドが実行される前に HTML がロードされるのを待ちます。この時点で、HTML がロードされ、スタイルを設定できるように、このオブジェクトがどの要素であるかがキャプチャされます。 具体的な参照先: http://www.w3school.com.cn/h.asp
この質問は終了します
最初の書き方: tableColor();//alert(0)を実行すると、「0」が表示されますが、domは選択されておらず、コードは1行ずつ実行されます
2番目の書き方: ドキュメントがロードされた後に実行$(function() {
})
結論として、js の導入はドキュメントの最後に配置されており、カスタム関数に加えて、html 内の内部 js はドキュメントの実行後に js コードが確実に実行されるように $(function() {}) で記述されています。実行されました
$(function(){
は検出されません。//これは、ページがロードされた後に実行されるコードです
})
最初の書き方は、ページがロードされる前に実行されるため、DOM は変更されません。色付き
2つ目は
.ready()
の略称です。詳細についてはドキュメントを確認してください。通常、js 参照は
<head></head>
里面,第一种写法执行的时候,页面还没加载完,所以找不到
$(".table tr:odd")
セレクターに配置されます。2 番目のタイプはページがロードされた後に実行されるため、セレクターの色を変更できます。
2 番目の方法を使用するか、ページの最後に js 参照を追加します。
最初の書き方では、コード実行時にテーブル要素がページに読み込まれていない可能性があるため、要素が見つからないため色の変化はありません。
2 番目の記述方法は、コードを実行する前にページ要素がロードされるのを待つことです。これにより、ページ上のすべての要素がロードされ、コードが必要な要素を見つけることができるため、対応する変更が行われます。
リーリー
2 つの呼び出しの違いは、最初に
$(".table tr:odd")
を呼び出したときは DOM がロードされていないため、対応する要素を取得できなかった可能性があります。印刷して確認できますが、2 回目では確実に取得できています。その前に
JS
代码或引入的JS
文件放在页面底部,<BODY>
を置くことをお勧めします。1階の回答と同様に、最初の書き方では、.tableタグの前に配置してdomがロードされる前に実行すると、$セレクターがdomを見つけられず、色を指定できない場合があります。かわった。
2 つ目については、jquery ドキュメントの説明を確認することをお勧めします。ここでは jquery 公式 Web サイトを開くことができないため、別の場所から読むことができます
http://www.css88.com/jqapi-1。 ...
1. 最初の書き込み方法は、ドキュメントタグがロードされていないときに実行することです。つまり、HTML がロードされていない場合、その中の .table tr:odd にスタイルを追加すると、js スクリプトはそれがどのオブジェクトであるかを認識しないため、未定義になります。要素の読み込みが完了していません。ただし、関数には構文エラーがないため、alert 0
2.$(function(){}) は引き続き実行されます。つまり、内部のメソッドが実行される前に HTML がロードされるのを待ちます。この時点で、HTML がロードされ、スタイルを設定できるように、このオブジェクトがどの要素であるかがキャプチャされます。
具体的な参照先: http://www.w3school.com.cn/h.asp
この質問は終了します
最初の書き方:
tableColor();//alert(0)を実行すると、「0」が表示されますが、domは選択されておらず、コードは1行ずつ実行されます
2番目の書き方: ドキュメントがロードされた後に実行
リーリー$(function() {
})
結論として、js の導入はドキュメントの最後に配置されており、カスタム関数に加えて、html 内の内部 js はドキュメントの実行後に js コードが確実に実行されるように $(function() {}) で記述されています。実行されました