你好我想隐藏一个span和一个div,如果值是0.00 ..我的代码是
<span class="price-old"><%=getCurrentAttribute('item','custitem_sumisho_listprice')% </span>
<span class="price-new"><%=getCurrentAttribute('item','custitem_sumisho_onlineprice')%> </span>
<div class="save-sale" style="font-size: .8em; padding-top: 4em"><%=getCurrentAttribute('item','custitem_sumisho_totalsave')%>
在上面的代码中,如果class =“save-sale”的div将有0.00值,那么我想隐藏class =“price-old”和class =“save-sale”。这里getattribute标签会得到商品价格的价值。
我已经尝试过以下jquery但它不能正常工作
<script type="text/javascript" src="/site/js/jquery-1.10.2.min.js"></script>
<script>
$(function () {
if ($(".save-sale").text() == "0.00") {
$(".save-sale").hide();
}
});
</script>
答案 0 :(得分:1)
如果你想隐藏class =“price-old”和class =“save-sale”,你需要在你的函数中包含两者。正如你的问题所写,你只包括.save-sale
$(function () {
if ($(".save-sale").text() == "0.00") {
$(".save-sale").hide();
$(".price-old").hide();
}
});
答案 1 :(得分:0)
在脚本标签中的上述代码下,在读取功能的文档中或在加载功能中添加此脚本。
var old = document.getElementsByClassName("price-old")[0];
var div = document.getElementsByClassName("save-sale")[0];
if (div.innerHTML.trim() == "0.00") { //.trim() will remove extra whitespace
div.remove();
old.remove();
}
答案 2 :(得分:0)
所有其他答案忽略的是0
的数值可能不会在您的输入中呈现为"0.00"
。如果您正在检查数值,则应首先将其转换为数值。使用浮点值时还要注意舍入错误和边缘情况,并且永远不要尝试进行精确比较。这里一个安全的方法是:
var saveValue = Math.abs(parseFloat($(".save-sale").text()));
if (saveValue<=0.001) { ... }
然而,是否真的有必要在Javascript,客户端进行此检查? .save-sale
的价值是否会改变客户端?如果没有,请在Razor中执行您的逻辑,并根据服务器端逻辑显示/隐藏其他元素。
答案 3 :(得分:0)
首先,修复HTML错误。您在第一个>
之前错过了关闭</span>
,因此getCurrentAttribute
方法将失败:
<span class="price-old">
<%=getCurrentAttribute('item','custitem_sumisho_listprice')%
</span>
你在这里错过了</div>
。
<div class="save-sale" style="font-size: .8em; padding-top: 4em">
<%=getCurrentAttribute('item','custitem_sumisho_totalsave')%>
然后通过为hide
添加额外.price-old
来更新您的JavaScript:
$(function () {
if ($(".save-sale").text() == "0.00") {
$(".save-sale").hide();
$(".price-old").hide();
}
});
答案 4 :(得分:-1)