0

我必须将 .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>
4

2 回答 2

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);
});

固定演示

于 2013-03-22T08:44:49.793 回答
-1

问题是这条线。

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

您将 的返回值分配.data()给 value,与大多数其他 jQuery 函数一样,它返回 jQuery 对象本身。您稍后将该对象用作跨度的文本。这就是错误的来源。为了解决这个问题,首先在点击之外初始化 data 属性,并var value在 gdoron 中单独设置。

于 2013-03-22T08:53:06.443 回答