gpt4 book ai didi

javascript - 我不明白为什么 "this"关键字没有像我预期的那样工作

转载 作者:行者123 更新时间:2023-11-29 10:51:13 25 4
gpt4 key购买 nike

我想做的是在满足指定条件时执行create_tag函数。我将此函数称为对象的方法,在本例中为 document.body,通过将外部函数“create_tag(..)”设置为其方法。问题出在这个函数内部,我有一个“this”关键字,我希望它指的是方法的父 document.body。相反,它似乎不起作用。我尝试在函数中将“this”替换为“document.body”,所以问题应该是由“this”引起的。
这是代码:

xmlDom=xmlhttp.responseXML;
hint_ul=document.getElementById("hint_ul");
personaggi=xmlDom.documentElement.getElementsByTagName("personaggio");
for(i=0;i<personaggi.length;i++){
personaggio=personaggi.item(i);
name=personaggio.childNodes[1].firstChild.nodeValue;
if(name.substr(0, str.length).toLowerCase()==str.toLowerCase()){
document.body.crea_li=create_tag(name);
}
}
}


function create_tag(inner){
a=document.createElement("a");
a.innerHTML=inner;
this.appendChild(a); }

最佳答案

this 这样调用时将是 window

要将它的 this 作为 body 元素,这样调用它...

document.body.crea_li = create_tag.call(document.body, name);

关于javascript - 我不明白为什么 "this"关键字没有像我预期的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com