2015-11-20 45 views
0

我期待在页面加载时引用一些JSON变量。基于值为真/假,将一个类附加到html元素。JSON变量到jquery/HTML

不能得到这个工作,将不胜感激一些帮助 - 对jquery和所有新人。

// html 
<form id="add_form"> 
<script type="application/json" data-type="product" 
{"product_options": [ 
{"sku": "ABC123", "price": "$10", "in_stock": true, "can_order": true, "option1": "Small"}, 
{"sku": "DEF456", "price": "$20", "in_stock": false, "can_order": false, "option1": "Medium"}], "id": 31, "name": "Some Shirt style"} 
</script>...</form> 

我想通过.size_options类的元素进行迭代,并添加类基于JSON的“IN_STOCK”值li元素;即如果该值为真,则添加一个类。

// parse JSON data 
var obj = JSON.parse($("#add_form script[type='application/JSON']").html()); 

$(".size_options li").each() { 
    some code 
}); 

我很感谢这里的任何帮助。

+0

您需要一些方法从li元素中获取id。这可能吗? –

+0

您需要一种方法将每个'product_options'元素与每个'.size_options li'元素进行匹配,并使用'.addClass(...)' – JCOC611

+0

http://www.dynatable.com/ –

回答

1

在这种情况下number oflilengthobj.product_options应该是相等的。

$(".size_options li").each(function (index) { 
    if (obj.product_options[index].in_stock) { 
     $(this).addClass("classToBeAdd"); 
    } 
}); 
+0

谢谢!完美的作品。 – Tincdawg

+0

所以,你可以给它一个答案 – ozil

0

您需要附加一个数据属性与相同JSON值“数据can_order”,然后迭代元件,并根据真值附加的类。

但是我会建议在'can_order'检查'in_stock'属性之前,然后追加类。