相关疑难解决方法(0)

对象文字/初始化器中的自引用

有没有办法在JavaScript中使用以下内容?

var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work
};
Run Code Online (Sandbox Code Playgroud)

在当前形式中,此代码显然会抛出引用错误,因为this没有引用foo.但是,有什么办法对早些时候宣布的其他属性在对象文本的属性值依赖?

javascript object-literal

660
推荐指数
14
解决办法
12万
查看次数

带有id的DOM树元素是否成为全局变量?

研究一个简单的HTMLElement包装器的想法我偶然发现了Internet Explorer和Chrome的以下内容:

对于DOM树中具有ID的给定HTMLElement,可以使用其ID作为变量名来检索div.所以对于一个喜欢的div

<div id="example">some text</div>
Run Code Online (Sandbox Code Playgroud)

Internet Explorer 8和Chrome中,您可以执行以下操作:

alert(example.innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)

要么

alert(window['example'].innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)

那么,这是否意味着DOM树中的每个元素都转换为全局命名空间中的变量?它是否也意味着可以使用它作为getElementById这些浏览器中方法的替代品?

javascript dom global-variables identifier getelementbyid

341
推荐指数
5
解决办法
4万
查看次数

是否存在一个规范,即元素的id应该成为全局变量?

如果我有一个<div id='a'>Chrome浏览器,那么在javascript中我可以做(就好像是一个全局变量).a.stuff()a

然而,这不适用于FireFox - 我将需要使用document.getElementById('a').

这里的正确行为是什么?(根据W3规格)

另外我感兴趣的是,如果我有一个id为div aa在我的脚本中也有一个全局变量,Chrome将如何解决这种歧义.这种行为是随机的还是笨拙的?

如何将一个id由连字符(" - "),冒号(":")和句点(".")组成的元素进行翻译(好吧我知道它们可以被访问document.getElementById但浏览器将如何将其转换为表示它们的全局变量)

html javascript dom global-variables identifier

39
推荐指数
3
解决办法
8458
查看次数