使用在外部文件中创建的<span>值</span>

时间:2013-11-04 13:41:10

标签: javascript html

我有两个文件:一个名为simplecart.js的javascript文件,它创建一个值,显示在<span id="quantity" class="simpleCart_quantity"></span>的另一个文件中,一个html文件。 html文件包含以下代码:

<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> 

问题是: 似乎代码无法获得<span id="quantity" class="simpleCart_quantity"></span>之间的值(请记住,该值是在外部文件simplecart.js中创建的),现在alwasy显示“文章”,因为它无法看到值为'1'。

我希望有人可以帮我解决这个问题, 非常感谢!

2 个答案:

答案 0 :(得分:0)

根据simplecart.js文件的外观,很可能您的html文件中的javascript代码实际上运行得太早(在文档实际准备好之前)。 您应该延迟任何DOM操作,例如with(或jquery):

document.onload = function () {
    var quantity = document .......
}

最好使用绑定库(如Angular.js),但您可以定期更新该字段作为快速解决方案:

var updatePlural = function () {
    var quantity = document .......
}
setInterval(updatePlural, 250); // every 250ms

答案 1 :(得分:0)

你需要延迟运行你的JS直到之后 JS填充数据运行的跨度。

由于你的脚本元素紧跟在它之后,它会立即拉出值。没有更好的方法可以确保其他JS 不首先运行。

如何将JS延迟到最佳时刻的具体细节将取决于simplecart.js中相关代码的运行时间,