4

jQuery で要素が見つかりません。alert($("#testbutton").length);毎回 0 を表示します。

私は何か間違ったことをしていますか?

私のJS/jQueryコード:

(function ($) {
    alert($("#testbutton").length);
}) (jQuery);

私のHTML:

<html>
    <body>
        <div id="header">
            <div class="button" id="testbutton">Test</div>
        </div>
    </body>    
</html>
4

4 に答える 4

6

コードを実行すると、DOM の準備ができていないため、要素は存在しません。代わりにこれを行うつもりでしたか (関数を jQuery に渡すことは のショートカットです$(document).ready(fn)):

$(function () {
    alert($("#testbutton").length);
});
于 2012-09-06T13:51:34.210 に答える
2

以下を使用してjQueryスクリプトをヘッドに記述した場合:

(function() {

    ...

})();

本文ページのコンテンツをロードする前にスクリプトを実行する可能性があるため、機能しません。

使用する:

$(document).ready(function() {

    ...

});

または、フッターでスクリプトを移動します。

于 2012-09-06T13:53:39.113 に答える
1

ここでわかるように、ドキュメントの準備ができたらそれを呼び出します: http://jsfiddle.net/SwQUH/

$(document).ready(function() {
  alert($("#testbutton").length);
});

そのように呼び出すだけでは、DOM は「準備完了」ではなく、HTML 要素はまだ存在しません。

于 2012-09-06T13:51:42.513 に答える
0

以下を試してください

<script type="text/javascript">

そして最初に、jquery のロード時にエラーが発生しないことを確認します

DOM のロード時にアラートを出し、問題がないかどうかを確認します。

于 2012-09-06T13:51:48.463 に答える