相关疑难解决方法(0)

为什么document.getElementById()函数存在?

在创建网页时,我总是使用功能

var someVariable = document.getElementById('myID');
Run Code Online (Sandbox Code Playgroud)

获取对元素对象的引用.最近有人向我建议这不是必要的,因为已经存在这样的变量.它的名字等于id.我测试过它似乎有效.

<div id="myID">some text</div>
<a href="someplace" onclick="alert(myID.innerHTML)">click here</a>
Run Code Online (Sandbox Code Playgroud)

此代码有效,它会按预期警告"某些文本".firefox错误控制台中只有一个警告:

全局范围内由ID/NAME引用的元素.使用WC3标准document.getElementById()代替....

我现在大部分时间都在使用jQuery,但我需要向工作中的老板证明一点,否则我将不得不给他买一盒巧克力:-).

任何想法为什么上层代码不起作用或为什么使用它是一个非常错误的想法(在Firefox中警告是不够的)???

谢谢你的回答

javascript getelementbyid

8
推荐指数
2
解决办法
2684
查看次数

某些浏览器中的getElementById是可选的吗?

通过window.someThing访问元素时,"someThing"应该是html元素的名称.但我现在看到的是,我可以通过id以相同的方式访问元素,而无需document.getElementById.什么时候改变了?看起来它适用于Chrome,IE,Firefox 13,但不适用于Firefox 12.

例如:

<div id="MyDiv">Content</div>

<script>
    MyDiv.innerHTML = "New Content";
</script>
Run Code Online (Sandbox Code Playgroud)

为什么上面的例子有效?我为什么不这样做:

var MyDiv = document.getElementById('MyDiv');
Run Code Online (Sandbox Code Playgroud)

它是新的东西,还是一直有可能,我只是不知道它?

html javascript

8
推荐指数
1
解决办法
226
查看次数

是否始终可以从窗口对象获取html元素的ID?

我注意到以下几点:

<div id='myDiv'>...</div>

<script>
    myDiv.style.color = 'red'; // I can access the object.
<script>
Run Code Online (Sandbox Code Playgroud)

在实现这一点之前,我总是使用以下内容:

var x = document.getElementById('myDiv'); 
x.style.color = 'red';
Run Code Online (Sandbox Code Playgroud)

我很迷惑.第二种方法有什么意义?第一种方法总是有效吗?

html javascript

8
推荐指数
1
解决办法
1230
查看次数

如何使用ES6模块语法导入属性(破坏)?

import utilityRemove from 'lodash/array/remove';
import utilityAssign from 'lodash/object/assign';
import utilityRandom from 'lodash/number/random';
import utilityFind from 'lodash/collection/find';
import utilityWhere from 'lodash/collection/where';

let util;

util = {};

util.remove = utilityRemove;
util.assign = utilityAssign;
util.random = utilityRandom;
util.find = utilityFind;
util.where = utilityWhere;
Run Code Online (Sandbox Code Playgroud)

使用ES6模块系统有更好的方法吗?

javascript ecmascript-6

8
推荐指数
1
解决办法
2082
查看次数

为什么window [id] === document.getElementById(id)

我注意到在几个浏览器中,dom元素只能通过它们的id访问:

HTML

<div id="chocolat"></div>
Run Code Online (Sandbox Code Playgroud)

JS

alert(chocolat.id); //alerts "chocolat
chocolat; //points to the node
window.chocolat; //idem
chocolat === document.getElementById('chocolat'); // true
Run Code Online (Sandbox Code Playgroud)

(在这里测试:http://jsfiddle.net/GUUPT/)这适用于Chrome上的某些版本的IE,但它不适用于Firefox(5).

我好奇这是从哪里来的?这是标准吗?

javascript

7
推荐指数
1
解决办法
1363
查看次数

检测是否已注入Chrome扩展程序内容脚本/内容脚本包含防护

我想在更新选项卡时执行内容脚本功能.问题是,有时候标签更新是ajax(没有页面重新加载),同时仍然会更改页面的URL.因此,注入的旧内容脚本仍然存在于页面上.结果是在同一页面上注入并运行了多个内容脚本实例.

所以,我正在寻找一种注入内容脚本的机制,只有在之前没有注入相同的内容脚本时.有任何想法吗?

javascript include google-chrome-extension

7
推荐指数
2
解决办法
5440
查看次数

为什么dom-elements作为window-object的属性存在?

如果我写这样的HTML:

<div id="foo">Foo<div>
Run Code Online (Sandbox Code Playgroud)

window.foo返回一个dom元素并window.document.getElementById("foo") === window.foo返回true.

这是为什么?为什么每个人都使用getElementById

并在旁注:为什么window.foo在IE7/8中禁止超越?如果我设置会发生什么window.foo = "bar"

html javascript dom

7
推荐指数
1
解决办法
443
查看次数

访问Jquery选择器作为对象属性,意外结果

假设我有一个div看起来像:

<div id="testDiv">some stuff in here</div>
Run Code Online (Sandbox Code Playgroud)

我有一个定义对象文字的脚本:

var testObject = 
{
    testDiv: $("#testDiv"),
    testDivProperty: this.testDiv    
};
Run Code Online (Sandbox Code Playgroud)

为什么我访问时testObject.testDiv获得对jQuery对象的引用,即

[<div id=?"testDiv">?…?</div>?]
Run Code Online (Sandbox Code Playgroud)

但是当我访问时,testObject.testDivProperty我获得了对实际元素的引用,即

<div id=?"testDiv">?…?</div>?
Run Code Online (Sandbox Code Playgroud)

因此我无法执行jQuery操作testObject.testDivProperty

javascript jquery

7
推荐指数
1
解决办法
561
查看次数

是否可以使用HTML5表单标签而不泄漏全局变量?

标准HTML 5表单标签需要ID来将标签链接到输入.

<form>
  <label for="male">Male</label>
  <input type="radio" id="male"/>
  <label for="female">Female</label>
  <input type="radio" id="female"/>
</form>
Run Code Online (Sandbox Code Playgroud)

正如大多数JS开发人员所知,在这种情况下,使用ID会泄漏全局变量window.male并被window.female创建.

如何在不创建全局变量的情况下使用表单标签?

javascript forms html5 globals

7
推荐指数
1
解决办法
93
查看次数

Javascript - 按 id 名称选择元素

通常我通过 id 选择元素document.getElementById('idName')。但显然您也可以仅通过名称“idName”来选择它们。直到最近我才意识到这一点。我想知道通过 idName 选择元素是否是一种“不好的做法”?我已经使用了搜索引擎,但没有找到任何关于 的信息select by id name。现在这是我的问题。

在此输入图像描述

 console.log(idName)
Run Code Online (Sandbox Code Playgroud)
<div id="idName">Hello World</div>
Run Code Online (Sandbox Code Playgroud)

javascript

7
推荐指数
1
解决办法
758
查看次数