Javascript jQuery-数据-属性引号问题

Javascript jQuery-数据-属性引号问题,javascript,jquery,json,html,attributes,Javascript,Jquery,Json,Html,Attributes,我正在编写一个lightbox脚本,在使用自定义数据lightbox属性时遇到了一个问题。我试图做的是允许数据lightbox属性设置动态添加到页面-在图像上 这是我的照片: <a href="largeimage.png" data-lightbox='{"setting":"value","setting":"value"}'> <img src="thumbnail.png" /> </a> 设置只是一个字符串,它被转储到属性中。运行时,我没有收

我正在编写一个lightbox脚本,在使用自定义数据lightbox属性时遇到了一个问题。我试图做的是允许数据lightbox属性设置动态添加到页面-在图像上

这是我的照片:

<a href="largeimage.png" data-lightbox='{"setting":"value","setting":"value"}'>
   <img src="thumbnail.png" />
</a>
设置只是一个字符串,它被转储到属性中。运行时,我没有收到任何错误,并且所有设置都正确地注入到数据lightbox属性中。设置在插件中不起作用,但有一个原因-在某些地方,输出到页面的html如下所示:

<a href="largeimage.png" data-lightbox="{"setting":value"}"> ...

您的报价是错误的。HTML属性需要使用双引号。因此,您需要在JSON值上使用单个值。您看到的浏览器输出是浏览器试图尽最大努力更正html。

JSON.parse:预期的属性名或“}”,但JSON应使用双引号。确定。。。我现在很困惑。所以从我读到的内容和你最后的评论来看,我认为JSON的格式应该是:{“设置”:“值”,“设置”:“值”}。所以,要将其封装在data-attribute中,它不应该被{}包围吗?@maxedison。。。如果JSON应该在双引号中,我如何防止浏览器尝试更正属性上的双引号?jQuery API还说在html5数据属性中使用JSON时使用{}。不知道为什么会被选中。在第一次出现“value”之后的第一个代码块中缺少了一个双引号。嘿,John,谢谢,我已经解决了这个问题,只是问题中的一个输入错误。我已经遍历了我的实际字符串和对象,所有内容都被正确引用。在任何其他属性/值中也没有任何额外的引号/撇号。我不确定这是否重要,但我认为“数据-”属性应该用
.data('lightbox',settings)
设置,而不是
.attr('data-lightbox',settings)
。我认为你对.data的看法是正确的,我似乎离得更近了一点。谢谢这是你正在使用的Widgekit灯箱吗?我搜索了“数据灯箱”,这就是我能找到的全部。如果是这样的话,它看起来并不需要JSON。它需要看起来像CSS样式的值的东西,其中名称和值不带引号,每个名称和值用冒号分隔,名称/值对用分号分隔。
<a href="largeimage.png" data-lightbox="{"setting":value"}"> ...