小编Ran*_*all的帖子

创建多维数组的副本,而不是引用 - JavaScript

可能重复:
克隆JavaScript对象的最有效方法是什么?

这也被称为"深度复制",我发现了一些文章.最接近的似乎是这个,但是它适用于jQuery - 我试图在没有库的情况下这样做.

我也在两个地方看到过这样的事情:

arr2 = JSON.decode(JSON.encode(arr1));
Run Code Online (Sandbox Code Playgroud)

但这显然效率低下.也可以单独循环和复制每个值,并在所有数组中重复.这看起来很累人也很低效.

那么复制JavaScript多维数组的最有效的非库方式是[[a],[b],[c]]什么?如果有必要,我对"非IE"方法非常满意.

谢谢!

javascript arrays copy

59
推荐指数
3
解决办法
4万
查看次数

如何删除使用querySelectorAll获取的元素?

他看起来像是一个快速回答的东西,但我找不到一个.也许我在搜索错误的条款?没有图书馆,虽然我不需要跨浏览器的后备,但我的目标是该项目的所有最新版本.

我得到了一些元素:

element = document.querySelectorAll(".someselector");
Run Code Online (Sandbox Code Playgroud)

YEY!

如何删除这些元素?我错过了什么?我是否必须遍历它们并做这element.parentNode.removeChild(element);件事,或者是否有一个我缺少的简单功能?

javascript element selectors-api

46
推荐指数
3
解决办法
3万
查看次数

谷歌浏览器显示灰色圆圈光标

当开发工具处于活动状态时,Google Chrome会显示灰色圆圈光标.为什么会发生这种情况?如何停止?

google-chrome google-chrome-devtools

44
推荐指数
4
解决办法
2万
查看次数

Javascript - 捕获对象属性的访问权限

是否可以捕获对象的(任何)属性何时被访问或尝试访问?

例:

我创建了自定义对象 Foo

var Foo = (function(){
    var self = {};
    //... set a few properties
    return self;
})();
Run Code Online (Sandbox Code Playgroud)

然后有一些行动反对Foo- 有人试图访问财产bar

Foo.bar
Run Code Online (Sandbox Code Playgroud)

是否有方法(原型,也许)捕获这个?bar可能未定义Foo.我可以捕获任何尝试访问未定义属性的功能.

例如,如果bar未定义Foo,并且Foo.bar尝试了,例如:

Foo.prototype.undefined = function(){
    var name = this.name; //name of property they attempted to access (bar)
    Foo[name] = function(){
        //...do something
    };
    return Foo[name];
}
Run Code Online (Sandbox Code Playgroud)

但功能性,不像我的例子.

概念

Foo.* = function(){
}
Run Code Online (Sandbox Code Playgroud)

背景

如果我有自定义函数,每次调用此函数时都可以监听(见下文).只是想知道是否有可能获得财产.

Foo = function(){};
Foo.prototype.call = function(thisArg){
    console.log(this, thisArg);
    return this; …
Run Code Online (Sandbox Code Playgroud)

javascript object-properties

24
推荐指数
2
解决办法
9812
查看次数

用于"现代HTML5"浏览器的Javascript,如$(document).ready()

这很可能已经是某个地方的问题了,但我无法找到它,因为每次搜索都会出现jQuery问题.

我正在寻找一种经过验证的方法来绑定到准备好的文档,就像jQuery一样$(document).ready().但是,这是一个"仅限现代浏览器"页面,具有非常轻量级的JavaScript,我想避免在这里加载jQuery.

有人会指出我正确的方向吗?

谢谢!

javascript html5 document-ready

23
推荐指数
1
解决办法
1万
查看次数

将数组中的所有值作为参数传递给函数

我有一系列值:

['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

我需要将这些作为参数传递给函数:

window.myFunction('a', 'b', 'c', 'd');
Run Code Online (Sandbox Code Playgroud)

如果我可以将数组/对象传递给函数,这会更容易,但函数是由其他人编写的或者已经存在而且我无法更改它们 - 它们需要作为单独的参数传递,这是我需要解决的问题.

传递的值的数量不一致.它可能是一个,可能是100个.

再次,我不能影响功能.它们就是这样,我总会收到一系列值传递给它们.

javascript arrays function parameter-passing

16
推荐指数
2
解决办法
1万
查看次数

没有jquery的.parents() - 或者父母的querySelectorAll

可能重复:
使用matchesSelector js检查event.target.parentElement

我有一个dom对象,我想把它的父母,所有的父母,与选择器相匹配querySelectAll(),但是对于父母而不是孩子.类似于jQuery的.parents('selector')方法,但我不需要任何后向兼容性.另外,请不要图书馆.我将取一个布尔返回值.

我可以自己写这个作为递归函数/ for/while使用matchesSelector().我正在寻找鲜为人知的方法或更有效的代码.

保存任何处理都是值得的.想想成千上万的匹配检查,甚至更多.

javascript parents selectors-api

13
推荐指数
1
解决办法
3万
查看次数

用文档片段javascript替换元素内容

我正在尝试用文档片段替换元素的所有内容:

var frag = document.createDocumentFragment()

文档片段正在创建中.没有问题.我添加元素就好了,也没有问题.我可以使用它来附加它element.appendChild(frag).这也很好用.

我正在尝试创建一个类似于jQuery HTML的"替换"方法.我并不担心旧的浏览器兼容性.是否有一个神奇的功能来替换元素的所有内容?

我已经尝试过element.innerHTML = frag.cloneNode(true),(根据我能找到的每个 '替换元素内容'维基),这不起作用.它给了我<div>[object DocumentFragment]</div>.

请不要图书馆.这意味着如果你把一个jQuery解决方案作为答案,你就会被投票.不是想成为一个混蛋,但它发生在一次.

谢谢!

编辑 为了清楚起见,我正在寻找一个"神奇"的解决方案,我知道如何一次删除所有现有元素,然后附加我的片段.

javascript replace documentfragment

13
推荐指数
2
解决办法
1万
查看次数

在JavaScript中从单个节点创建节点列表

这是其中一个看起来如此简单,但我无法想出一个很好的方法来解决它.

我有一个节点,也许nodelist = document.getElementById("mydiv");- 我需要将其规范化为节点列表.而不是一个数组:一个真实的,真正的nodeList对象.

nodelist = [document.getElementById("mydiv")];

请不要图书馆.

javascript nodelist nodes

11
推荐指数
4
解决办法
1万
查看次数

保留对附加节点javascript的引用

请不要图书馆.超出我的控制.

我正在向dom附加一个文档片段.这一切都有效.没问题.

在附加片段后如何保留/检索节点列表?相关代码:

var frag = document.createDocumentFragment();
//add some content to the fragment
element.appendChild(frag);
Run Code Online (Sandbox Code Playgroud)

再次,这是有效的!我不需要对如何添加东西到dom进行故障排除!

如果我设置var e = element.appendChild(frag);,所有内容都会正常附加,但e= =一个空文档片段.

我在这里寻找一些光滑的魔法伏都教.不要让我循环整个dom.内容可以是任何东西,一个或多个有或没有孩子的节点.如果有一些querySelectorAll的技巧或可以接受的东西.

谢谢!

编辑 在进一步调用时,看起来e上面实际上是对fragvar 的返回引用,在将其附加到dom之后为空.这就像元素整齐地滑出片段进入dom一样,片段就是空洞的.

javascript appendchild documentfragment

10
推荐指数
2
解决办法
2064
查看次数