将.data中的值存储为数组并对其进行操作

时间:2013-03-22 08:40:37

标签: jquery

我必须将.data方法中的数据存储为数组,并以大于3的跨度打印它们。

我编写代码,但它正在提供'object object' DEMO

<script type="text/javascript">
    $(function(){
        $('a').click(function(){
            var value = $('div').data('key',[]);
            var txt= $(this).text();
            $('div').data('key').push(txt)
            $('span').text(value)
        });
    });
</script>

// html

<div></div>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
<a href="#">7</a>
<a href="#">8</a>
<span></span>

2 个答案:

答案 0 :(得分:3)

$('div').data('key', []); // init the array

$('a').click(function () {
    var value = $('div').data('key'); //pulls the current array value.
    var txt = $(this).text();
    value.push(txt); 
    $('span').text(value);
});

Fixed DEMO

答案 1 :(得分:-1)

问题在于这一行。

var value=  $('div').data('key',[]);

您将.data()的返回值赋给value,与大多数其他jQuery函数一样,返回jQuery对象本身。您稍后将该Object用作跨度的文本。那是错误的来源。要解决这个问题,首先在点击之外初始化一次数据属性,然后在gdoron执行的方式中单独设置var value