Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组的内容输出到HTML div容器?_Javascript_Jquery_Html_Arrays - Fatal编程技术网

Javascript 如何将数组的内容输出到HTML div容器?

Javascript 如何将数组的内容输出到HTML div容器?,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我试图将数组的内容输出到html文件上的div容器中,但我被难住了。以下是我所拥有的: function change_string() { var $container = $('.container'); $container.html(''); var myString= streams.home[myStringNo]; var $myString= $('<div></div>'); $myString.text('@

我试图将数组的内容输出到html文件上的div容器中,但我被难住了。以下是我所拥有的:

function change_string() {
    var $container = $('.container');
    $container.html('');

    var myString= streams.home[myStringNo];
    var $myString= $('<div></div>');

    $myString.text('@' + myString.user + ': ' + myString.message + 'Generated:     ' + timeStamp);
    $myString.appendTo($container);

    myStringNo ++;
};
函数更改\u字符串(){
var$container=$('.container');
$container.html(“”);
var myString=streams.home[myStringNo];
变量$myString=$('');
$myString.text(“@”+myString.user+”:“+myString.message+”生成:“+时间戳);
$myString.appendTo($container);
myStringNo++;
};
行:$myString.appendTo($container);每次单击按钮都显示一个字符串,如下所示:

 <INPUT type="button" value="See next Random String" name="button1"   onClick="change_string()"> <br>

我该怎么办

A) 输出数组的内容,而不是容器中的单个字符串

B) 如何引用页面上的每个不同按钮?所有其他按钮都是这样的,我处于阻塞点:

<INPUT type="button" value="See strings for jmcgui05" name="button2" onClick="change_string()"> <br>


基本上,当单击button2时,容器中应该填充user2的字符串。

您可以使用jQuery的
$.each()
方法迭代
流中的每个对象。之所以在javascript的内置
数组.forEach
方法上使用此方法,主要是为了确保跨浏览器的兼容性

HTML


JS

var messageNumber=0;
$(函数(){
$('.message btn')。单击(函数(){
var messageLines=[];
$.each(streams.home[messageNumber],函数(i,message){
messageLines.push([
'',
“@”,stream.user“:”,
stream.message,
“已生成:”,
时间戳,
''
].加入(“”);
});
$container.append(messageLines.join(“”));
messageNumber++;
});
});
关于风格的一些注意事项

  • 废弃内联javascript并使用jQuery的事件处理程序。这样,您就不必手动将onclick属性附加到每个按钮上

  • 使用[string1,string2,string3,…,stringN]。连接(“”);用于连接字符串;它在javascript中效率更高,并且更易于阅读和管理。:]

  • 尽量在变量命名上更加简洁。你应该试着去掉'my'前缀,直接调用
    myString
    类似
    messageText
    的东西。这不仅会让你更容易,也会让那些试图帮助你的人更容易

  • 此外,在将来,尽量保持代码格式的整洁,以便人们可以更轻松地帮助您


  • 干杯对于第一个问题,您可以使用jQuery的
    .each()
    函数输出数组的内容。基本上可以循环遍历数组并将字符串连接在一起:

    function output_strings(source_array)
    {    
        var container = $('.container');
        var output = "";
    
        $.each(source_array, function(i, string) {
            output += string + ' ';
        });
    
        container.text(output);
    }
    
    对于第二个问题,“如何引用页面上的每个不同按钮?”最好的方法是为每个按钮指定一个唯一的ID属性:

    <button id="button_1">Button One</button>
    

    我制作了一个演示这些概念的程序。和是
    .each()
    函数的文档。希望有帮助

    您提供的javascript的一个重要部分是,您需要全局变量来保存索引、主哈希等。请尝试以下操作:

    var myStringNo=0;
    var homeArray=[];
    
    对于(var i=1;我可以使用jsfiddle或类似的工具共享其余代码吗?
    function output_strings(source_array)
    {    
        var container = $('.container');
        var output = "";
    
        $.each(source_array, function(i, string) {
            output += string + ' ';
        });
    
        container.text(output);
    }
    
    <button id="button_1">Button One</button>
    
    $('#button_1').on('click', function(){
        // Do something
    });