对象数组在第一个脚本中构建...“order_items”。我想将它传递给第二个脚本,这样我就可以遍历值并构建一个像素来渲染到我的屏幕。我被困在试图传递阵列。
@for (int i = 0; i < OrderItemsReceived.Count; i++)
{
<script type="text/javascript" id="pepper" data-search="order_items">
var order_items = [{
'name':ProductName',
'sku': SKU',
'price': UnitPrice.ToString().Replace(",", "")',
'quantity': Quantity.ToString()'
}]
</script>
}
<script type="text/javascript">
var script_tag = document.getElementById('pepper');
var order_items = script_tag.getAttribute("data-search");
var order_id = @Model.OrderId;
var pixel_html = '';
var integration = 'DYNAMIC';
var program_id = 7302;
if (order_id && order_items) {
jQuery.each( order_items, function (i, order_item) {
pixel_html += '&' + 'ITEM_ID' + i + '=' + order_item.sku +
'&' + 'ITEM_PRICE' + i + '=' + order_item.price +
'&' + 'QUANTITY' + i + '=' + order_item.quantity;
});
if (pixel_html) {
pixel_html = '<iframe src="https://t.pikespeak.com/track?' +
'INT=' + integration +
'&' + 'PROGRAM_ID' + '=' + program_id +
'&' + 'ORDER_ID' + '=' + order_id +
pixel_html +
'" width="1" height="1" frameborder="0"></iframe>';
}
}
$('body').append(pixel_html);
</script>
这就是我解决问题的方法。
<script type="text/javascript" id="pepper" data-search="order_items">
alert("hello");
var order_items = @Html.Raw(Json.Encode(Model.OrderItemsReceived.OrderItemsReceived));
var order = [];
var order_listItems = [];
for (var i = 0; i < order_items.length; i++){
var orderList = order_items[i];
order = [{
'sku': orderList.SKU,
'price': orderList.UnitPrice,
'quantity': orderList.Quantity
}]
order_listItems.push(order);
}
我选择继续使用json对象,因为我的数组将由键值对构成。一旦我意识到这一点,变量的范围就不再是问题了。