0

我有这段代码,我基本上希望它读取标签之间创建的内容<span>(该值由另一个 javascript 脚本创建),然后将其用于显示“文章”或“文章”。

<span id="quantity" class="simpleCart_quantity"></span>

<script type="text/javascript">
var q = document.getElementById('quantity');

if (q == 1) {
    document.write("article");
}
else
  {
  document.write("articles");
  }
</script> 

所以我希望它检查<span id="quantity" class="simpleCart_quantity"></span>,如果存在的值为'1',则写'article',如果值为'0'或大于'1',则写'articles'。我希望你能得到它。

现在它可以工作了,但前提是你实际上在 之间写了一些东西<span>,比如: 1

但是该值是在外部创建的,脚本必须能够读取页面加载时创建的值,对吗?

结果应该是一个句子,上面写着“您的购物车中有 x 篇文章”。

我不知道该怎么做,我希望有人可以帮助我。

非常感谢!

4

2 回答 2

1
<span id="quantity" class="simpleCart_quantity"></span>
<!-- ... --->
<span id="quantityText"></span>

<script type="text/javascript">
    var quantity = document.getElementById("quantity"),
        quantityText = document.getElementById("quantityText");

    if (parseInt(quantity.innerHTML, 10) === 1) {
        quantityText.innerHTML = "article";
    } else {
        quantityText.innerHTML = "articles";
    }
</script> 

请注意,您必须使用基数参数(在本例中为 10)以确保将数字解释为 base10。否则'0x',例如,以 开头的所有内容都将被解释为十六进制 (base16)。

使用三元运算符的替代语法:

<script type="text/javascript">
    var quantity = document.getElementById("quantity"),
        quantityText = document.getElementById("quantityText"),
        quantityValue = parseInt(quantity.innerHTML, 10);

    quantityText.innerHTML = "article" + (quantityValue === 1 ? "" : "s");
</script> 
于 2013-11-04T13:02:17.887 回答
-1

除了纯 javascript,还可以使用 jQuery:

   jQuery($this).find('span.simpleCart_quantity') // find the span with class name: simpleCart_quantity
   .text() // get the text
于 2013-11-04T13:04:03.057 回答