9

array.jsファイルとindex.html.

私のarray.jsファイルは次のようになります。

function go(){
    var array = new Array();
    array[0] = "Red";
    array[1] = "Blue";
    array[3] = "Green";
    for (var i=0; i < array.length; i++){
        document.write("<li>" + array[i] + "<br />");
    }
}

私のindex.htmlファイルは次のようになります。

<html>
    <head>
        <script type="text/javascript" src="array.js"></script>
    </head>
    <body>
        <input type="button" onclick="go()" value="Display JS Array"/>
        <script>
            go();
        </script>
    </body>
</html>

Display JS ArrayHTML ページのボタンをクリックしても何も起こりません。ボタンをクリックした後に配列要素が表示されるようにします。次のようになります。

  • 青い
4

5 に答える 5

4

li要素の親要素をパラメータとして関数を変更できます。

function go(element){
    var array = new Array();
    array[0] = "Red";
    array[1] = "Blue";
    array[3] = "Green";

    var ul = document.createElement("ul");
    for (var i=0; i < array.length; i++) {
       var li = document.createElement("li");
       li.innerHtml = array[i];
       ul.appendChild(li);
    }
    body.insertAfter(ul, element); 
}


<input type="button" onclick="go(this)" value="Display JS Array"/>
于 2012-08-07T06:13:51.327 に答える
3

document.write("<li>" + array[i] + "<br />");これをに置き換えますdocument.write("<li>" + array[i] + "</li>");

HTMLファイルで削除します

<script>
  go();
</script>

すでにgo();を呼び出しているからです。onclickで機能します。そしてあなたの配列では、array[2]はundefinedを与えます。

これを試してみてください:

    <html>
    <head>
        <script type="text/javascript">
            function go(){
                var array = new Array();
                array[0] = "Red";
                array[1] = "Blue";
                array[2] = "Green";
                li = document.getElementById("list");
                li_arr = "";
                for (var i=0; i < array.length; i++){
                   li_arr += "<li>" + array[i] + "</li>";
                }
               li.innerHTML = li_arr;
            }
        </script>
    </head>
    <body>
        <input type="button" onclick="go()" value="Display JS Array"/>
        <ul id="list"></ul>
    </body>
</html>

</ p>

于 2012-08-07T06:11:35.000 に答える
3

あなたのコードは大丈夫です。そして元気に働いています。はい、外部 JS または内部 JS を使用できます。

外部 JS を使用する場合: -

Test.html

<html>
    <head>
        <script type="text/javascript" src="arrayy.js"></script>
    </head>
    <body>
        <input type="button" onclick="go()" value="Display JS Array"/>       
    </body>
</html>

arrayy.js

function go(){
    var array = new Array();
    array[0] = "Red";
    array[1] = "Blue";
    array[3] = "Green";
    for (var i=0; i < array.length; i++){
        document.write("<li>" + array[i] + "<br />");
    }
}

これらの上記のコードは、Mozilla Firefox、IE 8、およびその他のブラウザーで実行されています。

内部 JS を使用する場合: -

 <html>
    <head>
        <script>
            function go(){
            var array = new Array();
            array[0] = "Red";
            array[1] = "Blue";
            array[3] = "Green";
            for (var i=0; i < array.length; i++){
                document.write("<li>" + array[i] + "<br />");
            }
            }        
        </script>
    </head>
    <body>
        <input type="button" onclick="go()" value="Display JS Array"/>       
    </body>
</html>
于 2012-08-08T05:22:17.070 に答える
0

それは私にとってはうまくいきます。

しかし、shreedhar が言ったように: 削除する必要があります

 <script>
 go();
 </script>

それ以外の場合は、ボタンを押す前に表示されます。array[2] は定義されていないため、配列からそれをフィルタリングする必要があります。

于 2012-08-07T10:20:27.803 に答える
0

jquery dom ready 関数を使用している場合、次のように arrayy.js を変更するとします。

$(document).ready(function() {
    this.go = function(){
        var array = new Array();
        array[0] = "Red";
        array[1] = "Blue";
        array[3] = "Green";
        for (var i=0; i < array.length; i++){
           document.write("<li>" + array[i] + "<br />");
        }
    }
}
于 2015-10-28T11:15:32.867 に答える