我正在使用以下JQuery代码:
(function($) {
"use strict";
$( document ).ready(function() {
var normalPrices = jQuery('.price-range .price .price')
.map(function() {
return parseFloat(jQuery(this).text().
replace(/[^0-9\.]+/g, ""), 10);
}).get();
if (normalPrices[0] < 300) {
var ifcBalance = normalPrices[0] / 18;
var m = parseFloat(ifcBalance).toFixed(2);
$('div.ifc-balance-div1')
.html('<p class="dynamic-badge-txt">Only £' + m + ' a month*</p>');
}
else {
$('div.ifc-balance-div1').hide();
}
if (normalPrices[1] < 300) {
var ifcBalance2 = normalPrices[1]/18;
var m2 = parseFloat(ifcBalance2).toFixed(2);
$('div.ifc-balance-div2')
.html('<p class="dynamic-badge-txt">Only £' + m2 + ' a month*</p>');
}
else {
$('div.ifc-balance-div2').hide();
}
if (normalPrices[2] < 300) {
var ifcBalance3 = normalPrices[2]/18;
var m3 = parseFloat(ifcBalance3).toFixed(2);
$('div.ifc-balance-div3')
.html('<p class="dynamic-badge-txt">Only £' + m3 + ' a month*</p>');
}
else {
$('div.ifc-balance-div3').hide();
}
});
})(jQuery);
并使用normalPrices[0]
,normalPrices[1]
,normalPrices[3]
等我尝试设置if语句,只有在Price高于300时才显示相关的div元素。将其设置为使用上面的代码只选取第一个div并隐藏其余两个。这里有趣的是第一个div甚至不超过300.
我得到价格的HTML是动态的,但静态表示看起来像这样:
<div class="price-box">
<p class="old-price"><span class="price-label">Was</span> <span class=
"price" id="old-price-12121"><span class="price"><span class=
"currency">£</span>399</span></span></p>
<p class="special-price"><span class="price-label">You Save</span>
<span class="price" id="price-excluding-tax-12121"><span class=
"price"><span class="currency">£</span>50</span></span></p>
</div>
<div class="price-range">
<span class="price-label">From </span>
<span class="price"><span class="price"><span class="currency">£</span></span></span>
</div>
请注意,我有三个容器,其类别和结构与上面相同
我有一种不好的感觉,我没有正确引用数组中不同的normalPrices
条目。有人可以帮忙吗?
答案 0 :(得分:0)
看起来你只是在每个if
之间更改数组下标和ID值,为什么不循环?
for(i = 0; i < max; i++) {
if (normalPrices[i] < 300) {
var ifcBalance = normalPrices[i] / 18;
^---
var m = parseFloat(ifcBalance).toFixed(2);
$('div.ifc-balance-div' + (i+1)).html('<p class="dynamic-badge-txt">Only £' + m + ' a month*</p>');
^^^^^^----
}
else {
$('div.ifc-balance-div' + (i+1)).hide();
^^^------
}
答案 1 :(得分:0)
Number(使用数组时,总是建议使用循环语句对数组进行迭代。如果有效,则进行代码测试:
class MyClass():
def __init__(self):
# some code here
class MyClassContainer():
def __init__(self):
self.container = [] # will store MyClass object instances.
def Add(self, object):
self.container.append(object)
def Remove(self, object):
self.container.remove(object)
example = MyClassContainer()
myclass1 = MyClass()
example.Add(myclass1)
myclass2 = MyClass()
example.Add(myclass2)
example.Remove(myclass1)