Javascript 无法使用DOM操作Onclick属性

Javascript 无法使用DOM操作Onclick属性,javascript,html,dom,Javascript,Html,Dom,我的意图是通过DOM操作HTML标记中的“onclick”属性,但它总是向我发送消息 未捕获的TypeError:无法读取null的属性“setAttribute” 在hopeNoError(js.html:102) 在HTMLButtonElement.onclick(js.html:32) var btn=document.getElementById('run')) hopeNoError=函数(){ getUrl=document.getElementById('url'); getD

我的意图是通过DOM操作HTML标记中的“onclick”属性,但它总是向我发送消息

未捕获的TypeError:无法读取null的属性“setAttribute” 在hopeNoError(js.html:102) 在HTMLButtonElement.onclick(js.html:32)

var btn=document.getElementById('run'))
hopeNoError=函数(){
getUrl=document.getElementById('url');
getDmn=document.getElementById('domain');
pushUrl=document.getElementById('aBtn').setAttribute('onclick',getUrl);
pushDmn=document.getElementById('aBtn').setAttribute('textcontent',getDmn);
}

a
这称为“锚定标签”

你知道吗

您可以更改URL和显示文本


在这里试试 1.把URL放在这里

2.在此处输入显示名称

3.点击这里的按钮

您的结果(单击它,)

谷歌


onclick用于调用javascript函数,而不是直接指向URL。但你想要的东西可以通过如下方式实现:

const runBtn=document.getElementById('run');
const aBtn=document.getElementById('aBtn');
const changeButtonBehaviour=()=>{
常量url=document.getElementById('url')。值;
const domain=document.getElementById('domain')。值;
aBtn.innerText=域;
aBtn.dataset.url=url;
};
const goTo=(ev)=>{
//也许你想在这里使用location.href
const url=ev.target.dataset.url;
log(`想象我们被定向到${url}`);
};
runBtn.addEventListener('click',changeButtonBehaviour);
aBtn.addEventListener(“单击”,转到)


Google
您没有在元素的ID中包含点。只需删除
gEBI
s上的点,以备将来参考。无论何时使用
getElementById
querySelector
,.etc,都会出现一个错误,提示
无法。。。财产。。。如果为null
,则表示未找到要查找的元素。这可能有多个原因,但在您的例子中,您使用的
getElementById
是错误的,因为在字符串中使用了类选择器(点),这使得DOM查找id为
.run
,但id不存在的元素。但是
run
可以。@EmielZuurbier我已经在我的每个类id中添加了。(点),但是在我通过单击“run”按钮进行测试之后。控制台不工作或未发送任何消息。我应该怎么做?最好从每个
id
属性和
getElementById
调用中删除点。你会让你的生活更轻松。如果控制台没有显示消息,则表示脚本运行正常或根本没有运行。但是,如果你能编辑你的问题,告诉我们你想完成什么,那会有很大帮助。代码对我来说没有意义。@EmielZuurbier我已经编辑过了。请查收