0

これは日付を表示する簡単な関数です(プロのものは必要ないので、これで十分です)。問題は、ページが読み込まれたときに表示したいということです。ユーザーにボタンなどを押してほしくないのですが、機能していません。

ここにあります:

<script type="text/javascript">
    window.onload = ReturnDay;
</script>

<script>
    function ReturnDay() {
        var monthNames = [ 
            "January", 
            "February", 
            "March", 
            "April", 
            "May", 
            "June",
            "July", 
            "August", 
            "September", 
            "October", 
            "November", 
            "December" 
        ];
        var dayNames= [
            "Sunday",
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
        ];
        var newDate = new Date();

        newDate.setDate(newDate.getDate() + 1);    

        $('#dateday').html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());​
    }
</script>

<input id="dateday" type=text></div>

何か案は?

どうもありがとう。

4

4 に答える 4

5

<script>関数の巻き上げは、特定の要素内でのみ行われます。に割り当てようとするReturnDayonload、存在しません。

サンプルコードの3行目と4行目を削除します。

    </script>
     <script>

とはいえ、関数をイベントハンドラオブジェクトに直接割り当てることは、ベストプラクティスとは見なされません。対立を導入するのは簡単すぎます。代わりにイベントバインディングを使用してください。jQueryはold-IEの違いを抽象化します。

$(window).load(ReturnDay);

または、ページ内のすべての画像が読み込まれるのを待つのではなく、DOMの準備ができたときにスクリプトを実行する場合は、次のようにします。

$(document).ready(ReturnDay);

また、<input>要素はEMPTYとして定義されます。それらのinnerHTMLを設定しても意味がありません。使用しval()ないでhtml()ください。

于 2012-04-07T11:50:45.160 に答える
3

この問題についてはもっと明確にできるかもしれませんが、問題は入力フィールドのhtmlを設定しようとしているためだと思います。代わりにこれを試してください

$('#dateday').val(...);
于 2012-04-07T11:46:56.757 に答える
2

$(document).ready()代わりにjqueryを使用する方が良いwindow.onload

于 2012-04-07T11:56:39.467 に答える
1

主な問題は、innerHTMLではなく、入力の値を設定する必要があることです。

document.getElementById('dateday').value = dayNames.......;

そうは言っても、onloadに割り当てる前に、関数が定義されているとは思いません。関数が引き上げられていることは知っていますが、それは現在のコードブロックにのみ適用されると思います。

とにかく名前付き関数を定義する必要はありません。これを行うだけです:

window.onload = function() {
    // your date stuff here
};
于 2012-04-07T11:51:25.210 に答える