Hy、 私はいくつかのセクションから作られた簡単な1ページのウェブサイトを持っています。 htmlファイルの中にスクリプトを書くと、正しくセクション数が得られます。コードはこれです:HTMLファイル内のセクション数を数える
var number = $("#sections li").length
console.log(number);
しかし、私は外側のファイルから完全に同じコードを実行すると動作しません。
アイデア?
Hy、 私はいくつかのセクションから作られた簡単な1ページのウェブサイトを持っています。 htmlファイルの中にスクリプトを書くと、正しくセクション数が得られます。コードはこれです:HTMLファイル内のセクション数を数える
var number = $("#sections li").length
console.log(number);
しかし、私は外側のファイルから完全に同じコードを実行すると動作しません。
アイデア?
考えられる理由:
<section>
要素があるどのように多くを教えてくれていない前に、あなたのJavaScriptが実行されていることができ<foo id="sections">
の下に何個の<li>
要素が存在するのか、これは意図的なものですか?あなたのコードでは、昔ながらのJavaScriptを使用することによって、よりポータブル(かつ迅速)のようになります。
var count = document.getElementById("sections").getElementsByTagName("li").length;
または(わずかに少ないポータブル:近代的なブラウザが必要です):
具体的var count = document.querySelectorAll("#sections li").length;
:
window.addEventListener('DOMContentLoaded', function(e) {
var count = document.querySelectorAll("#sections li").length;
console.log(count);
});
jQueryライブラリi含まれ、ページ内で実行されるすべてのファイルも含まれていれば、それが機能しない理由はありません。あなたのファイル構造がどのようにレイアウトされているか、メインのJavaScriptファイルが書かれているのを見ることなく、なぜそれが失敗しているのかを具体的に述べるのは難しいです。あなたが受け取っているエラーが何であるかを知るのにも役立ちます。 $(function() { });
は、ファイルライブラリを含める必要があるので、jQueryの$(document).ready(function() { });
のためのjQueryの省略形です
:
私の最高の推測では、DOMの準備ができる前に、これを試して、あなたのコード実行です。 – DaniP
これをトラブルシューティングするための情報が不十分です。なぜそれが動作していないか、何が起きているかの説明(あなたのコンソールのエラー?)を判断するための例を見なければなりません。 –
jqueryが含まれていますが、jsファイルには含まれていませんが、htmlには含まれています。エラーはありません; –