javascript - 引用的 JS 文件不会让 HTML 页面获得比第一个常量更多的信息
问题描述
我正在尝试为多个 HTML 文件制作一个 js 文件,以便参考各种相对快速变化的信息,这样我就不需要打开所有的 HTML 页面来找到我在每个页面中寻找的内容。据我所知,我的代码看起来不错,但唯一让我留下文本的是“模板”ID,除非它是写在 HTML 文件中的,否则我可以全部使用它们。当涉及到其中一些事情时,我是一个菜鸟......
class Price{
constructor(price){
this.price = price;
}
}
const Template = new Price("0");
document.getElementById("Template").innerHTML = Template.price;
const DD = new Price("1");
document.getElementById("DD").innerHTML = DD.price;
const PrintDD = new Price("2");
document.getElementById("PrintDD").innerHTML = PrintDD.price;
const FFFF = new Price("3");
document.getElementById("FFFF").innerHTML = FFFF.price;
const TTT = new Price("4");
document.getElementById("TTT").innerHTML = TTT.price;
如果我使编码过于复杂,我不会感到惊讶,但我一直在寻找解决方案以试图解决这个问题。
解决方案
如果我正确理解了这个问题,那么问题是,如果您的代码在没有元素的页面中,id="Template"
那么您的代码将失败并出现异常
document.getElementById("Template").innerHTML = Template.price;
这是因为document.getElementById("Template")
返回null
并且您无法将属性(.innerHTML
在您的情况下)分配给- 因此在引发错误null
后其余代码将不会运行Uncaught TypeError
你可以这样做
class Price{
constructor(price){
this.price = price;
}
assignToId(id) {
const element = document.getElementById(id);
if (element) {
element.innerHTML = this.price;
}
}
}
const Template = new Price("0");
Template.assignToId("Template");
const DD = new Price("1");
DD.assignToId("DD");
const PrintDD = new Price("2");
PrintDD.assignToId("PrintDD");
const FFFF = new Price("3");
FFFF.assignToId("FFFF");
const TTT = new Price("4");
TTT.assignToId("TTT");
甚至
class Price{
constructor(price, id){
this.price = price;
const element = document.getElementById(id);
if (element) {
element.innerHTML = price;
}
}
}
const Template = new Price("0", "Template");
const DD = new Price("1", "DD");
const PrintDD = new Price("2", "PrintDD");
const FFFF = new Price("3", "FFFF");
const TTT = new Price("4", "TTT");
但是,除非您将class Price
用于未显示的其他目的,否则最简单的代码将是
function price(price, id) {
const element = document.getElementById(id);
if (element) {
element.innerHTML = price;
}
}
price("0", "Template");
price("1", "DD");
price("2", "PrintDD");
price("3", "FFFF");
price("4", "TTT");
推荐阅读
- java - 适用于 Java v2 的 AWS IOT 设备 SDK 最后将
- php - 在选择选项中选择 (PHP)
- javascript - 计算边界框矩形公式
- c# - DisplayAlert 方法仅在 Xamarin 中的方法结束时执行
- c# - C# XML 反序列化问题/无法生成临时类(结果=1)
- angular - Angular 和 .NET Core 的 SignalR CORS 问题
- python - 从另一个数据框的选定列中填充 NaN 值
- android - 使用 Svelte 应用程序获取 Ionic --watch 命令错误
- powershell - 访问嵌套数组成员
- python - 无法让 mysql-connector 正常工作