嗨,我是编程的新手,我正在努力学习并使其与每个()一起工作。忍受我。我尽力向你和你学习。
现在,我测试每一行以查看它是否有效。
salecost = $(this).find('#sale').html();
在显示带有美元符号的金额之前返回一些空值。很奇怪无法想出那一个。 Replace()无法正常工作 - 无法使其正常工作。它应该删除美元符号。
另外,我不确定比较如何 - 我是否正确地写了声明?
提前感谢您的帮助
var salecost;
var originalcost;
var percentDiscount;
var percent;
function calculate(sale, original)
{
percentDiscount = eval((sale/original)*100);
document.getElementById("percentoff").innerHTML=parseInt(percentDiscount) + '%';
}
$(document).ready(function(index){
$('.item').each(function(){
salecost = $(this).find('#sale').html();
salecost = salecost.replace(/[^\d\.]/g,"");
alert (salecost);
originalcost = $('#sale').html();
originalcost = originalcost.replace(/[^\d\.]/g,"");
alert (originalcost);
percent = calculate(salecost,originalcost);
alert(percent);
if(percent<30)
{
$("div#percentoff").css({"background-color":"brown", "padding":"5px 0"});
}
if(percent<50){
$("div#percentoff").css({"background-color":"yellow", "padding":"5px 0"});
}
if(percent<70){
$("div#percentoff").css({"background-color":"red", "padding":"5px 0"});
}
});
});
答案 0 :(得分:2)
这不是必需的
$(this).find('#sale').html();
您可以使用
替换它$("#sale").html();
因为id在文档中是唯一的。如果您有多个具有相同ID的元素,那么您的HTML无效。
修改强> 的
从span标记中删除id。
<span class="price">S$319</span>
这将在父div中找到类名为price
的所有跨度[此处仅为1]。无需在此处使用.html()
,您可以使用.text()
$(this).find('span.price').text();
答案 1 :(得分:1)
最好使用一致的样式,你的计算函数可以用jquery编写。
$(“#percentoff”)。html(percentDiscount)+'%');
在javascript中大多数情况下都不需要进行强制转换,将数字与字符串连接会产生字符串。
return percentDiscount;