在div上按下一个数组

时间:2013-12-04 21:50:49

标签: javascript arrays

当有人点击由这些div的ID组成的div时,我试图显示一个数组。到目前为止,我一直在更换值而不是添加它。我得到一两三个而不是一个,两个,三个,这就是我想要的。我想可能是我使用点击功能,但我不确定。

<div class="status" id="one">1</div>
<div class="status" id="three">333</div>
<div class="status" id="two">22</div>

<p id="demo">The array.</p>

$('.status').click(function() {
    var status = $(this).attr('id');
    var list = []; 
    list.push(status)
    //alert(status); 

    var x=document.getElementById("demo");
    x.innerHTML=list;
});

有一个小提琴http://jsfiddle.net/3zDZC/

2 个答案:

答案 0 :(得分:0)

问题是你不断重新创建数组。您想在处理程序之外创建数组。

此外,不是将innerHTML设置为数组,而是要在数组上调用join,以便div的内容采用数组中的值。

var list = []; 
$('.status').click(function() {
    var status = $(this).attr('id');

    list.push(status)
    //alert(status); 

    var x=document.getElementById("demo");
    x.innerHTML=list.join(', ');
});

答案 1 :(得分:0)

每次点击都会不断清理数组。将var list = [];移到点击处理程序之外:

var list = [];
$('.status').click(function () {
    var status = $(this).attr('id');
    list.push(status)
    //alert(status); 
    var x = document.getElementById("demo");
    x.innerHTML = list;
});

<强> jsFiddle example

既然你正在使用jQuery,你可以改变它:

var x = document.getElementById("demo");
x.innerHTML = list;

只是:

$('#demo').html(list);