我正在尝试执行.each功能,将搜索结果页面上每个产品的展示次数推送到dataLayer。我很难弄清楚如何在foreach中指定$(this)元素。我不确定这是做我想要的最好的方式,所以如果有人有更好的方法,请告诉我:)
希望我有意义! 谢谢!
<script>
$(function () {
$(".result-price-carpark-name span, .result-price-actual").each(function(index) {
console.log( index + ": " + $( this ).text() );
var carpark = $(this).text(); //How to specify its $(this) inside the .result-price-carpark-name span??
var price = $(this).text(); //How to specify its $(this) inside the .result-price-actual??
dataLayer.push({
'ecommerce': {
'currencyLocal': 'USD',
'impressions': [{
'name': carpark,
'id': carpark,
'price': price,
'category': carpark,
'list': 'ParkAstro',
'position': ''
}]
}
})
})
});
</script>
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="result-prices-item">
<div class="result-price-carpark-name"><span>PARK1</span></div>
<div class="result-price-actual">22</div>
</div>
<div class="result-prices-item">
<div class="result-price-carpark-name"><span>PARK2</span></div>
<div class="result-price-actual">22</div>
</div>
<div class="result-prices-item">
<div class="result-price-carpark-name"><span>PARK3</span></div>
<div class="result-price-actual">22</div>
</div>
&#13;
答案 0 :(得分:0)
如果您想要遍历每个停车场项目,那么您需要遍历每个停车场项目(即,不是孩子)。然后,在该循环中,您可以使用可选的context parameter来获取子项(也就是该特定项的名称和价格)。
$(".result-prices-item").each(function() {
$('.result-price-carpark-name', this).text();
$('.result-price-actual', this).text();
});
等