我想通过匹配对象中的其中一个属性的值来查找数据对象数组中的对象。我的标题可能不是最好的,但我不确定如何描述这一点。jQuery匹配属性数组中的对象的数据属性值
例如,对于下面的div,我想从“数据变种”阵列获得“属性”为“黑”的整个列表: (我已经扩大为便于阅读的HTML)
<div id="yui_3_17_2_1_1463518293327_182" class="product-variants" data-variants="
[
{"attributes":
{"color":"red"},
"optionValues":[{"optionName":"color","value":"red"}],
"sku":"SQ7490795",
"price":2000,
"salePrice":0,
"onSale":false,
"unlimited":false,
"qtyInStock":1,
"len":0.0,
"width":0.0,
"height":0.0,
"weight":0.0
},
{"attributes":{"color":"black"},"optionValues":[{"optionName":"color","value":"black"}],"sku":"SQ0598849","price":2000,"salePrice":0,"onSale":false,"unlimited":false,"qtyInStock":1,"len":0.0,"width":0.0,"height":0.0,"weight":0.0},
{"attributes":{"color":"orange"},"optionValues":[{"optionName":"color","value":"orange"}],"sku":"SQ5650843","price":2000,"salePrice":0,"onSale":false,"unlimited":false,"qtyInStock":1,"len":0.0,"width":0.0,"height":0.0,"weight":0.0}
]"
data-item-id="570c23edf699bb9c6946e2e7">
我曾尝试过各种版本的这个:
console.log($('.product-variants').data("variants").attributes("color" = "black"));
但我要么得到错误或不确定。
顺便说一下,HTML数据是由平台(Squarespace)动态生成的,所以我无法访问它进行更改。
在此先感谢您的帮助!
你试试用单引号代替双引号为您的数据变体的属性?当第一个双引号以“attributes”开始时,双引号将关闭。所以试试这个data-variants =' [ {“attributes”:(.....)'<-closing single quote。 – atomCode
谢谢,但数据是由平台(Squarespace)动态生成的,所以我无法更改格式。我会将其添加到我的问题。 – ep2020