我想要做的是在满足指定条件时执行create_tag函数。我将这个函数称为一个对象的方法,在这个例子中是document.body,通过设置一个外部函数“create_tag(..)”作为它的方法。问题出在这个函数里面,我有一个“this”关键字,我期望引用该方法的父类document.body。相反,它似乎并不奏效。我试图用函数中的“document.body”替换“this”,所以问题应该由“this”引起。
下面是代码:我不明白为什么“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](http://jibbering.com/faq/notes/closures/)是一个非常全面的解释。 – Andrew 2012-03-20 20:40:31