使用在外部文件中创建的 <span> 值
Using <span> value that is created in an external file
我有两个文件:一个名为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 中创建的),现在始终显示"文章",因为它无法看到该值是否为"1"。
我希望有人可以帮助我解决这个问题,多谢!
根据 simplecart.js 文件的外观,html 文件中的 javascript 代码很可能运行得太早(在文档实际准备就绪之前)。你应该延迟任何 DOM 操作,例如使用(或使用 jquery):
document.onload = function () {
var quantity = document .......
}
最好为此使用绑定库(如 Angular.js),但您可以定期更新字段作为快速解决方案:
var updatePlural = function () {
var quantity = document .......
}
setInterval(updatePlural, 250); // every 250ms
您需要延迟运行 JS,直到用数据填充跨度的 JS 运行之后。
由于脚本元素紧随其后出现,因此它将立即拉取值。没有更好的方法来确保其他JS不会首先运行。
如何将JS延迟到最佳时刻的细节将取决于simplecart.js中的相关代码何时运行,
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 使用Clipboard.js复制span文本
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 使用带有javascript的span创建CSS转换
- 在javascript中创建的span在网页中显示为[object HTMLSpanElement]
- 在DIV中动态地围绕所选文本创建SPAN
- 如何强制TinyMCE在P标签内创建SPAN标签
- 如何用span包装两个动态创建的元素
- 如何在插件Tag-it创建的span中添加值
- 使用"span"创建一个自定义的基于web的文本编辑器;元素——一个坏主意
- Javascript动态创建span并垂直对齐文本:文本留在底部
- 如何在包含在iframe中的网页中创建span元素
- 创建不需要的新行的span类的随机加载顺序
- 动态创建Span元素
- 为字符串中的空格创建HTML span
- 在尝试选择动态创建的span时被卡住了
- 使用javascript在另一个元素中创建一个span元素