[英]How do I use Document method getElementById() on a html variable
[英]Can I use the HTML name file directly in .getElementById or do I have to always use document
当您想从特定的 HTML 获取元素时,您可以使用 document.getElementById,但是否可以使用 HTML 文件的实际名称而不是使用“文档”? 我问这个的原因是我有两个不同的 HTML 文件链接到同一个 JS 文件,所以我不能运行我的 JS 文件,因为在同一个 function 中我有两个来自两个不同 Z4C4AD5FCA2E7A3F74DBB1CED084 文件的变量从 HTML 文件之一它无法检测到另一个文件。
这是我在 JavaScript 中的 function。
var config = parseInt(document.getElementById('enc_porta').getAttribute("config"));
if(config == 2 && resetError) { ILCPhoenixWrite(null, 'config', 11, 0); }
if (lcd == 1){
var elements = document.getElementById("numpad_p1").getElementsByClassName("selected");
while (elements.length > 0) { elements[0].classList.remove("selected"); }
usercode = "";
}
else if (lcd == 2){
var elements = document.getElementById("numpad_p2").getElementsByClassName("selected");
while (elements.length > 0) { elements[0].classList.remove("selected"); }
usercode = "";
}
var elements = document.getElementById("numpad_config").getElementsByClassName("selected");
while (elements.length > 0) { elements[0].classList.remove("selected"); }
usercode = "";
document.getElementById('enc_porta').setAttribute("numpad_p1", (hidePad ? 0 : 1)); /* '?' true ':'false */
document.getElementById('enc_porta').setAttribute("numpad_p2", (hidePad ? 0 : 1));
document.getElementById('enc_porta').setAttribute("numpad_config", (hidePad ? 0 : 1));
}
这是我的 HTML 文件 Porta1.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="pragma" content="no-cache" />
<link rel="stylesheet" type="text/css" href="css/custom.css">
<script src="js/custom.js"></script>
</head>
<body>
<div id="enc_porta" recon=0 config=0 pad=0 bt_emergency=0 bt_entry=0 numpad_p1=0 numpad_config=0 lock=0 >
<div id="config" class="bt sqr66x66 blur" onclick="ILCPhoenixWrite(this, 'config', 2, 0);KeyPadOpen(this);"></div>
<div id="back" class="bt sqr66x66" onclick="ILCPhoenixWrite(this, 'config', 3, 0);"></div>
<div id="recon" class="bt sqr20x20 blur"></div>
<div id="lockscreen1" class="lock"></div>
<div id="bt_entry_1" class="bt_entry">
<span id="circle_1" class="circle_1"></span>
<span id="circle_2" class="circle_2"></span>
</div>
<div id="blackback1" class="blackback"></div>
<div id="bt_emergency" class="bt sqr300x250 blur" onclick="ILCPhoenixWrite(this, 'bt_emergency', 5, 0);"></div>
<div id="numpad_p1" class="numpad">
<div id="num1" class="padbt sqr86x86" onclick="KeyPadClick(this, 1, 1);">1</div><div id="num2" class="padbt sqr86x86" onclick="KeyPadClick(this, 2, 1);">2</div><div id="num3" class="padbt sqr86x86" onclick="KeyPadClick(this, 3, 1);">3</div>
<div id="num4" class="padbt sqr86x86" onclick="KeyPadClick(this, 4, 1);">4</div><div id="num5" class="padbt sqr86x86" onclick="KeyPadClick(this, 5, 1);">5</div><div id="num6" class="padbt sqr86x86" onclick="KeyPadClick(this, 6, 1);">6</div>
<div id="num7" class="padbt sqr86x86" onclick="KeyPadClick(this, 7, 1);">7</div><div id="num8" class="padbt sqr86x86" onclick="KeyPadClick(this, 8, 1);">8</div><div id="num9" class="padbt sqr86x86" onclick="KeyPadClick(this, 9, 1);">9</div>
<div id="pdBk" class="padbt sqr86x86" onclick="KeyPadClick(this, -1, 1);">←</div><div id="num0" class="padbt sqr86x86" onclick="KeyPadClick(this, 0, 1);">0</div><div id="pdOk" class="padbt sqr86x86" onclick="KeyPadClick(this, 10, 1);">✓</div>
</div>
<b id="numpad_config" class="numpad_config">
<div id="num1" class="padbt sqr26x26" onclick="KeyPadClick(this, 1, 1);">1</div><div id="num2" class="padbt sqr26x26" onclick="KeyPadClick(this, 2, 1);">2</div><div id="num3" class="padbt sqr26x26" onclick="KeyPadClick(this, 3, 1);">3</div>
<div id="num4" class="padbt sqr26x26" onclick="KeyPadClick(this, 4, 1);">4</div><div id="num5" class="padbt sqr26x26" onclick="KeyPadClick(this, 5, 1);">5</div><div id="num6" class="padbt sqr26x26" onclick="KeyPadClick(this, 6, 1);">6</div>
<div id="num7" class="padbt sqr26x26" onclick="KeyPadClick(this, 7, 1);">7</div><div id="num8" class="padbt sqr26x26" onclick="KeyPadClick(this, 8, 1);">8</div><div id="num9" class="padbt sqr26x26" onclick="KeyPadClick(this, 9, 1);">9</div>
<div id="pdBk" class="padbt sqr26x26" onclick="KeyPadClick(this, -1, 1);">←</div><div id="num0" class="padbt sqr26x26" onclick="KeyPadClick(this, 0, 1);">0</div><div id="pdOk" class="padbt sqr26x26" onclick="KeyPadClick(this, 10, 1);">✓</div>
</b>
</div>
</body>
</html>
第二个 HTML 文件是相同的,但我有 numpad_p2 而不是 numpad_p1。
我认为您对客户端(即在浏览器中)的工作方式有些误解。
当浏览器加载 HTML 时,如果有任何脚本标签,它会加载脚本并对其进行处理,根据脚本的指示更改 DOM。
因此,如果您加载 Porta1.html,那么它将加载脚本文件“custom.js”。 如果您加载其他页面,并且它具有相同的脚本标签,那么“custom.js”也将被加载。
每个页面加载的“custom.js”实例是独立的,彼此不知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.