我在按钮的数据属性中存储了一个数组。
数组成功存储,但由于某种原因,每次我试图访问存储在data属性中的数组时,我只得到数组的左括号,没有其他!
我就是不明白
这是我的代码:
var array = [{"note": "Hey I love you!",
"full_name": "Sarah James",
"date_added": "14 September 2022"
},{
"note": "Hey I love you too!",
"full_name": "Billy Smith",
"date_added": "15 September 2022"
}];
var stringed = JSON.stringify(array);
$('.o').append('<button data-test="'+stringed+'" class="viewTicketBtn">Click Here</button>');
$(document).on('click', '.viewTicketBtn', function(){
var str = $(this).attr('data-test');
console.log(str);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<div class="o">
</div>
点击按钮,你会看到问题。
我做错了什么
2条答案
按热度按时间goucqfw61#
这个问题是因为你在HTML中使用了
data
属性。它只能存储字符串。您正确地使用了JSON.stringify()
来解决这个问题,但是JSON中的"
破坏了HTML格式。你可以转义HTML中的双引号,但有一个更简单的方法。要解决这个问题,可以使用jQuery的
data()
方法来获取和设置值,因为这将自动保留对象结构。下面是一个工作示例:
mftmpeh82#
使用其他引号-我交换了
'
和"
来处理JSON坚持使用的双引号。查看其他答案,了解直接将数组存储在data method中的jQuery方法