将此与getelement一起使用

时间:2014-11-03 09:47:41

标签: javascript

我看到Google Chrome扩展程序中的一些代码使用此代码而不是文档调用getElement

var item = this;
item.getElement('referrer').onclick = function() {
    chrome.tabs.create({url: item.referrer});
    return false;
};

item.getElement('by-ext').onclick = function() {
    chrome.tabs.create({url: 'chrome://extensions#' + item.byExtensionId});
    return false;
}

当我在浏览器中使用示例脚本时

this.getElementById('anelement').innerHTML = 'something';

它会出错,但不起作用。

谁能告诉我为什么会这样?上述方法只能用于Google Chrome扩展程序吗?

2 个答案:

答案 0 :(得分:0)

您可以查看“此”关键字正在执行的操作。这里有关于java脚本这个关键字https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

的好文档

在这种情况下,“this”指的是“window”对象。

答案 1 :(得分:0)

getElementById仅在document上定义,而不是在任何HTMLElement或其他任何内容上定义。 您只需查阅https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById上的文档即可轻松验证这一点。

请注意,这与getElementsByClassName等不同,可以在任何DOM元素上调用,并在下面查看匹配项。

this.getElementById失败的原因与this.boo失败的原因相同 - 您的this变量上没有定义getElementById属性/方法(除非&#39}等于document)。