最近刚开始在Dreamweaver工作。我想知道当你使用外部javascript文件时,你是否必须传入html元素或js文件可以看到他们的ID?例如;
<body>
<script src="client.js"></script>
<input type="submit" name="submit" id="submit" onclick="getValue()" value="Submit"></td>
然后在client.js文件中
function getValue() {
"use strict";
document.getElementById(submit).value = document.getElementById(otherelement).value;
}
这首先不起作用,我理解还有其他错误,但主要是 - client.js文件可以查看并使用getElementById(submit)
和getElementById(otherelement)
吗?
答案 0 :(得分:2)
我建议不要回避使用内联JavaScript元素,并采取不同的做法。我建议使用addEventListener()
绑定来自JavaScript的事件。
因此,请删除onclick
属性,然后执行:
<input type="submit" name="submit" id="submit" value="Submit">
我们将在JavaScript中添加该事件。为此,脚本需要在加载页面(DOM)后运行。您可以使用window.onload = function(){}
执行此操作,也可以在页面末尾加载脚本(</body>
之前)。
无论如何,在您的JavaScript中,您想要使用:
document.getElementById("submit").addEventListener('click', function(event){
// NOTE: You are clicking a submit button. After this function runs,
// then the form will be submitted. If you want to *stop* that, you can
// use the following:
// event.preventDefault();
// In here `this` will be the element that was clicked, the submit button
this.value = document.getElementById('otherelement').value;
});
答案 1 :(得分:1)
document.getElementById( id )
将id参数作为字符串
使用
document.getElementById("otherelement");
document.getElementById("submit");
还会移除</td>
,因为您的代码中没有<tr>
答案 2 :(得分:0)
如果您不使用引号来包装字符串,javascript将尝试查找名为submit
或otherelement
的变量。尝试添加这样的引号:
function getValue() {
"use strict";
document.getElementById("submit").value = document.getElementById("otherelement").value;
}
答案 3 :(得分:0)
如果您的HTML元素具有id
属性,则JS引擎会自动将其转换为变量..
e.g。
<input type="submit" name="submit" id="submit" onclick="getValue()" value="Submit"></td>
等于JS代码中的var submit
(考虑到在完全呈现DOM时加载JS文件)。
在每个HTML页面中,元素id
都是唯一的,这就是为什么它被转换为变量并且 将被覆盖,直到您决定为止。
答案 4 :(得分:0)
我想知道你何时使用外部JavaScript 你必须传入html元素或者js文件可以看到 他们的身份
是的,你可以看到ID:
function whoAmI(e) {
document.getElementById('output').textContent = e.target.id;
}
&#13;
<button id='Hiii' onclick='whoAmI(event)'>Check ID</button>
<p id='output'></p>
&#13;