我想通過匹配對象中的其中一個屬性的值來查找數據對象數組中的對象。我的標題可能不是最好的,但我不確定如何描述這一點。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