jquery如果标记为空,则写入文本-似乎不使用if语句,并应用于所有标记(无论是否为空)

jquery如果标记为空,则写入文本-似乎不使用if语句,并应用于所有标记(无论是否为空),jquery,if-statement,string,is-empty,Jquery,If Statement,String,Is Empty,我尝试了许多不同的方法来实现这一点,每次它都会将.text('FREE')写入所有标记,不管它们是否为空 我试图找到所有空的标记,然后在空标记中写入文本“FREE” 如果em标记不是空的,则它将是美元值,例如“$8.00”。如果这是一个美元的数额,那么我希望它不要做任何事情。这可能与标签内有美元符号有关吗 <script type="text/javascript"> $( document ).ready(function() { if ($(".Produ

我尝试了许多不同的方法来实现这一点,每次它都会将.text('FREE')写入所有标记,不管它们是否为空

我试图找到所有空的标记,然后在空标记中写入文本“FREE”

如果em标记不是空的,则它将是美元值,例如“$8.00”。如果这是一个美元的数额,那么我希望它不要做任何事情。这可能与标签内有美元符号有关吗

<script type="text/javascript">
    $( document ).ready(function() {
        if ($(".ProductPriceRating em").length == 0) {
            $(".ProductPriceRating em").text('FREE');
        }

     });
</script>

$(文档).ready(函数(){
if($(“.ProductPriceRating em”).length==0){
$(“.ProductPriceRating em”).text(“免费”);
}
});

我会继续尝试其他事情,但任何投入或教育都将非常感谢,谢谢

这是因为
if
基于选择器返回的元素数,而不是单个元素的文本。相反,请使用回调,它会迭代选择器返回的每个元素,并可以对每个单独的项执行操作/评估:

$(".ProductPriceRating em").text(function(i, t) {
    return t.length === 0 ? 'FREE' : t;
});

如果HTML是:

<div class="ProductPriceRating"> <!-- only the class-name matters -->
    <em></em>
</div>

参考资料:


    • 这是因为您将
      if
      基于该选择器返回的元素数,而不是单个元素的文本。相反,请使用回调,它会迭代选择器返回的每个元素,并可以对每个单独的项执行操作/评估:

      $(".ProductPriceRating em").text(function(i, t) {
          return t.length === 0 ? 'FREE' : t;
      });
      

      如果HTML是:

      <div class="ProductPriceRating"> <!-- only the class-name matters -->
          <em></em>
      </div>
      

      参考资料:


        • 这是因为您将
          if
          基于该选择器返回的元素数,而不是单个元素的文本。相反,请使用回调,它会迭代选择器返回的每个元素,并可以对每个单独的项执行操作/评估:

          $(".ProductPriceRating em").text(function(i, t) {
              return t.length === 0 ? 'FREE' : t;
          });
          

          如果HTML是:

          <div class="ProductPriceRating"> <!-- only the class-name matters -->
              <em></em>
          </div>
          

          参考资料:


            • 这是因为您将
              if
              基于该选择器返回的元素数,而不是单个元素的文本。相反,请使用回调,它会迭代选择器返回的每个元素,并可以对每个单独的项执行操作/评估:

              $(".ProductPriceRating em").text(function(i, t) {
                  return t.length === 0 ? 'FREE' : t;
              });
              

              如果HTML是:

              <div class="ProductPriceRating"> <!-- only the class-name matters -->
                  <em></em>
              </div>
              

              参考资料:

              您可以使用选择器:

              $(document).ready(function() {
                  $(".ProductPriceRating em:empty").text("FREE");
              });
              
              $(选择器)。length
              返回与选择器匹配的元素数,而不是内容的大小。

              您可以使用选择器执行以下操作:

              $(document).ready(function() {
                  $(".ProductPriceRating em:empty").text("FREE");
              });
              
              $(选择器)。length
              返回与选择器匹配的元素数,而不是内容的大小。

              您可以使用选择器执行以下操作:

              $(document).ready(function() {
                  $(".ProductPriceRating em:empty").text("FREE");
              });
              
              $(选择器)。length
              返回与选择器匹配的元素数,而不是内容的大小。

              您可以使用选择器执行以下操作:

              $(document).ready(function() {
                  $(".ProductPriceRating em:empty").text("FREE");
              });
              
              $(选择器)。length
              返回与选择器匹配的元素数,而不是内容的大小。

              这样如何:

              $(".ProductPriceRating em:empty").text('FREE');
              
              这个怎么样:

              $(".ProductPriceRating em:empty").text('FREE');
              
              这个怎么样:

              $(".ProductPriceRating em:empty").text('FREE');
              
              这个怎么样:

              $(".ProductPriceRating em:empty").text('FREE');
              

              您正在测试选择器匹配的元素数量,而不是内容的长度。您正在测试选择器匹配的元素数量,而不是内容的长度。您正在测试选择器匹配的元素数量,而不是内容的长度。您正在测试选择器匹配的元素数量,不是内容的长度。非常感谢,这非常好用——也感谢教育!非常感谢,这是完美的工作-并感谢教育以及!非常感谢,这是完美的工作-并感谢教育以及!非常感谢,这是完美的工作-并感谢教育以及!谢谢这也行得通。不知道:css中为空。打开了更多的可能性。谢谢。这也行得通。不知道:css中为空。打开了更多的可能性。谢谢。这也行得通。不知道:css中为空。打开了更多的可能性。谢谢。这也行得通。不知道:css中为空。打开了更多的可能性。