我必须将.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>
答案 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);
});
答案 1 :(得分:-1)
问题在于这一行。
var value= $('div').data('key',[]);
您将.data()
的返回值赋给value,与大多数其他jQuery函数一样,返回jQuery对象本身。您稍后将该Object用作跨度的文本。那是错误的来源。要解决这个问题,首先在点击之外初始化一次数据属性,然后在gdoron执行的方式中单独设置var value
。