2013-03-22 63 views
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> 

回答

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

+0

为什么downvote,如果我可以? – gdoron 2013-03-22 08:49:39

+0

因为你没有解释错误。你只是“修复它”。 – MildlySerious 2013-03-22 08:50:34

+0

@MildlyInteresting这并不酷。 – OQJF 2013-03-22 08:53:52

-1

问题是这条线。

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

您指定的.data()价值,其中,与大多数其他jQuery函数,返回jQuery对象本身的返回值。您稍后使用该对象作为跨度的文本。那是错误来自哪里。要解决这个问题,首先在点击之外初始化数据属性,并在gdoron的内部单独设置var value