Javascript 返回Null或Null对象的每个()函数
您好,我是编程新手,我正在努力学习并使其与each()配合使用。请容忍我。我尽我最大的努力向这里和你学习Javascript 返回Null或Null对象的每个()函数,javascript,jquery,css,Javascript,Jquery,Css,您好,我是编程新手,我正在努力学习并使其与each()配合使用。请容忍我。我尽我最大的努力向这里和你学习 我试图通过目录中每种产品的具体价格:无论是原版还是从页面销售 然后计算折扣的百分比 打印折扣% 选中以比较背景颜色的百分比:棕色、黄色和红色 现在,我测试每一行,看看它是否有效。 salecost=$(this).find('#sale').html()在显示带美元符号的金额之前返回几个空值。奇怪的是我想不出来。Replace()工作不正常-无法使其工作。它应该去掉美元符号 而且,我不确定它
salecost=$(this).find('#sale').html()代码>在显示带美元符号的金额之前返回几个空值。奇怪的是我想不出来。Replace()工作不正常-无法使其工作。它应该去掉美元符号
而且,我不确定它与compare的关系如何——我写的语句正确吗
提前谢谢你的帮助
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"});
}
});
});
var-salecost;
原始成本;
var百分比折扣;
风险值百分比;
功能计算(销售,原件)
{
百分比折扣=评估((销售/原件)*100);
document.getElementById(“percentoff”).innerHTML=parseInt(percent折扣)+'%';
}
$(文档).ready(函数(索引){
$('.item')。每个(函数(){
salecost=$(this.find('#sale').html();
salecost=salecost.replace(/[^\d\.]/g,”);
警报(销售成本);
originalcost=$('#sale').html();
原始成本=原始成本替换(/[^\d\.]/g,”);
警报(原始成本);
百分比=计算(销售成本、原始成本);
警报(百分比);
如果(百分比这不是必需的
$(this).find('#sale').html();
您可以使用
$("#sale").html();
因为id在文档中是唯一的。如果有多个元素具有相同的id,则HTML无效
编辑
从span标记中删除id
<span class="price">S$319</span>
这不是必需的
$(this).find('#sale').html();
您可以使用
$("#sale").html();
因为id在文档中是唯一的。如果有多个元素具有相同的id,则HTML无效
编辑
从span标记中删除id
<span class="price">S$319</span>
您应该将var语句移动到each函数中,这样它们就不是全局的
您不需要向您提供评估,(销售/原件)*100将自行完成
最好使用一致的样式,您的计算函数可以使用jquery编写
$(“#百分比折扣”).html(百分比折扣)+'%')
在javascript中,大多数情况下不需要强制转换,将数字与字符串连接将生成字符串
您的计算函数应该返回百分比折扣;
与其使用.css(),不如使用.addClass,这样可以很容易地用.removeClass撤消,样式是样式表中的所有元素,您可以使用jquery来选择类中的元素
您应该将var语句移动到each函数中,这样它们就不是全局的
您不需要向您提供评估,(销售/原件)*100将自行完成
最好使用一致的样式,您的计算函数可以使用jquery编写
$(“#百分比折扣”).html(百分比折扣)+'%')
在javascript中,大多数情况下不需要强制转换,将数字与字符串连接将生成字符串
您的计算函数应该返回百分比折扣;
与其使用.css(),不如使用.addClass,这样可以很容易地用.removeClass撤消,样式是样式表中的所有元素,您可以使用jquery来选择类中的元素
您好,谢谢您的快速回复。我已经尝试了$(“#sale”).html()但它只显示每个产品的一个价格,但也适用于其他产品。那么如何绕过它呢?您可以为此使用类名。如果我们可以看到一些html,这会有所帮助。ID是唯一的,因此听起来\sale
应该是。sale
。你好,谢谢generalhenry。我复制了html。我正在使用购物车软件。看It’好像你应该用.price and use.actualprice来代替销售,以找到原始价格。谢谢你的快速回复。我已经尝试了$(“#sale”).html()但它只显示每个产品的一个价格,但也适用于其他产品。那么如何绕过它呢?您可以为此使用类名。如果我们可以看到一些html,这会有所帮助。ID是唯一的,因此听起来\sale
应该是。sale
。你好,谢谢generalhenry。我复制了html。我正在使用购物车软件。看It’好像应该用.price和use.actualprice替换#sale来查找原始价格您有多个具有相同ID的项目。这是错误的。为每个元素指定唯一ID并使用类,例如,然后:$(this).find('.sale').html()应该可以。你也可以发布你的HTML代码吗?这是一个发布代码的好地方,这样我们就可以在actioncool中看到它了。从来没有听说过JSFIDLE。谢谢。@Shadow_Wizard@generalhenry@rahul-谢谢大家。我让它像你们看到的那样工作。但是当我复制代码并将其粘贴到本地开发人员的文件中时,它不再工作了,所以我去了error cofirefox上的NSLE-它说salecost为null。我不确定是什么原因导致salecost为null?任何细节都将不胜感激。谢谢您,您有多个具有相同ID的项。这是错误的。请为每个元素指定唯一ID,并改为使用类,例如,然后:$(this)。查找('.sale').html()应该可以。你也可以发布你的HTML代码吗?这是一个发布代码的好地方,这样我们就可以在actioncool中看到它了。从来没有听说过JSFIDLE。谢谢。@Shadow_Wizard@generalhenry@rahul-谢谢大家。我让它像你们看到的那样工作。但是当我复制代码并将其粘贴到本地开发人员的文件中时,它不再工作了,所以我去了error cofirefox上的NSLE-它说salecost为空。我不确定是什么原因导致salecost为空?任何洞察都将不胜感激。感谢您,只有销售和