【问题标题】:Using javascript to check if list item contains one text or the other, then assign static text使用 javascript 检查列表项是否包含一个文本或另一个,然后分配静态文本
【发布时间】:2015-09-24 17:00:32
【问题描述】:

我有一个以下列格式显示产品价格的电子商务网站:

  • 36.99 美元(适用于正常定价的商品)
  • (划掉 36.99 美元)32.99 美元 - 适用于有促销价的产品。

我正在尝试使用 javascript 检查产品是否具有正常价格或促销价,并在价格前指定文本“发件人”。例如:

  • 36.99 美元起
  • 36.99 美元起 32.99 美元起

第二个示例中的 36.99 将被删除。我意识到这需要一个 IF 语句来检查存在哪种类型的价格。这是我目前所拥有的,但怀疑我的语法错误:

    $(document).ready(function() {

$("#CategoryContent .ProductList  li").each(function() {

        var salePrice = $(".SalePrice", this).text();           
        var price = $(".p-price", this).text();

        if $(".SalePrice", this).text("From " + salePrice); {
            else {$(".p-price", this).text("From " + price);}
        }


}); });

小提琴:https://jsfiddle.net/x18qp9jj/

【问题讨论】:

  • 在这种情况下,如果我们能看到您的 javascript 正在解析的 html,将会很有帮助。你能在 codepen.io 或 jsfiddle.net 中加入一些东西吗?
  • 是的,拜托,总是试着放一个完整的小提琴
  • 对不起!这是小提琴:jsfiddle.net/x18qp9jj
  • DOM 中的SalePrice 类在哪里?你到底想做什么?

标签: javascript jquery


【解决方案1】:

您的if 语句非常奇怪且语法错误。

应该是这样的:

if ( A COMPARISON STATEMENT ) {
    $(".SalePrice", this).text("From " + salePrice)
} else {
    $(".p-price", this).text("From " + price);
}

但我不确定你真正要比较的是什么。

【讨论】:

    【解决方案2】:

    您的语法错误。要在 javascript 中创建条件语句 (if),您必须使用以下语法:

    if (condition) {
       statement1;
       ...
    } else | else if (condition) {
       statement2;
       ...
    }    
    

    其他 | else if 表达式是可选的。

    其中 condition 是一个计算结果为 Boolean object 的表达式。 因此,您的代码将以这样的方式结束:

    $(document).ready(function() {
    
      $("#CategoryContent .ProductList  li").each(function() {
    
          var salePrice = $(".SalePrice", this).text();
          var price = $(".p-price", this).text();
    
        if (salePrice != "") {
            $(".SalePrice", this).text("From " + salePrice);
          } else {
            $(".p-price", this).text("From " + price);
          }
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
    <div id="CategoryContent">
      <ul class="ProductList ">
        <li><em class="p-price">$36.99</em>
        </li>
        <li><span class=".SalePrice">$37.99 </span><em class="p-price">$33.99</em>
        </li>
      </ul>
    </div>

    如需进一步参考,请查看MDN上的if expressions

    【讨论】:

    • 这接近我所需要的。如何格式化条件以检查类是 p-price 还是 SalePrice?我基本上需要在一个或另一个类之前添加“From”这个词,但不能同时添加。
    • 我用您的评论信息更新了我的答案。希望这会对你有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多