标签: elements

获取子节点的最佳方法

我想知道,JavaScript提供了各种方法来从任何元素中获取第一个子元素,但哪个是最好的?最好的,我的意思是:大多数跨浏览器兼容,最快,最全面和可预测的行为.我用作别名的方法/属性列表:

var elem = document.getElementById('container');
var child = elem.children[0];
var child = elem.firstElementChild; // == children[0]
Run Code Online (Sandbox Code Playgroud)

这适用于两种情况:

var child = elem.childNodes[0]; // or childNodes[1], see below
Run Code Online (Sandbox Code Playgroud)

这是形式或<div>迭代的情况.如果我可能遇到文本元素:

var child = elem.childNodes; // treat as NodeList
var child = elem.firstChild;
Run Code Online (Sandbox Code Playgroud)

据我所知,firstChild使用NodeList childNodes,并firstElementChild使用children.我将这个假设建立在MDN参考上:

childNode是对元素节点的第一个子元素的引用,或者null如果没有元素节点的引用.

我猜测,就速度而言,差异(如果有的话)几乎没有,因为firstElementChild它实际上是一个引用children[0],并且children对象已经在内存中了.

扔我的是childNodes对象.我用它来查看表格元素中的表单.虽然children列出了所有表单元素,但childNodes似乎也包含HTML代码中的空格:

console.log(elem.childNodes[0]);
console.log(elem.firstChild);
Run Code Online (Sandbox Code Playgroud)

两个日志 <TextNode textContent="\n ">

console.log(elem.childNodes[1]);
console.log(elem.children[0]);
console.log(elem.firstElementChild);
Run Code Online (Sandbox Code Playgroud)

所有日志<input type="text" …

javascript dom children elements

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

如何将DOM元素设置为第一个子元素?

我有元素E,我正在添加一些元素.突然之间,我发现下一个元素应该是E的第一个孩子.诀窍是什么,怎么做?方法unshift不起作用,因为E是一个对象,而不是数组.

很长的路要走迭代E的孩子并移动'em键++,但我确信有一个更漂亮的方式.

javascript arrays jquery dom elements

203
推荐指数
6
解决办法
15万
查看次数

javascript对象中的元素数量

有没有办法从某个地方获取javascript对象中的元素数量?(即恒定时间复杂度).

我找不到检索该信息的属性或方法.到目前为止,我只能想到在整个集合中进行迭代,但那是线性时间.
很奇怪,没有直接访问对象的大小,你不觉得.

编辑:
我说的是Object对象(一般不是对象):

var obj = new Object ;
Run Code Online (Sandbox Code Playgroud)

javascript collections elements javascript-objects

98
推荐指数
4
解决办法
14万
查看次数

是否可以在JavaScript/JQuery中克隆html元素对象?

我正在寻找一些如何解决我的问题的技巧.

我在表格中有一个html元素(如选择框输入字段).现在我想复制对象并从副本中生成一个新对象,并使用JavaScript或jQuery.我认为这应该以某种方式起作用,但此刻我有点无能为力.

像这样的东西(伪代码):

oldDdl = $("#ddl_1").get(); 

newDdl = oldDdl;

oldDdl.attr('id', newId);

oldDdl.html();
Run Code Online (Sandbox Code Playgroud)

javascript jquery clone elements

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

在JavaScript中循环使用一组元素的最佳方法是什么?

在过去和大多数我目前的项目中,我倾向于使用这样的for循环:

var elements = document.getElementsByTagName('div');
for (var i=0; i<elements.length; i++) {
    doSomething(elements[i]);
}
Run Code Online (Sandbox Code Playgroud)

我听说使用"反向"循环更快但我没有真正的方法来证实这一点:

var elements = document.getElementsByTagName('div'), 
    length = elements.length;

while(length--) {
    doSomething(elements[length]);
}
Run Code Online (Sandbox Code Playgroud)

什么被认为是循环JavaScript中的元素或任何数组的最佳实践?

javascript arrays loops elements

53
推荐指数
7
解决办法
10万
查看次数

删除特定的数组元素,等于字符串 - Swift

如果它等于给定的字符串,是否没有简单的方法从数组中删除特定元素?解决方法是找到要删除的数组元素的索引,然后removeAtIndex创建一个新数组,在该数组中追加所有不等于给定字符串的元素.但是没有更快的方法吗?

arrays iphone elements ios swift

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

通过Id获取多个元素

我的整个身体都有一个带有锚标签的页面,如下所示:

<a id="test" name="Name 1"></a>
<a id="test" name="Name 2"></a>
<a id="test" name="Name 3"></a>
Run Code Online (Sandbox Code Playgroud)

ID始终相同,但名称更改.

例如,我需要填充这些锚标记的名称列表; 名称1,名称2,名称3.这是我到目前为止所处的位置:

document.write(document.getElementById("readme").name);
Run Code Online (Sandbox Code Playgroud)

这会写出第一个锚标记的名称.我需要一种通过Id获取多个元素的方法.


任何帮助是极大的赞赏.

html javascript elements

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

R:删除向量的最后一个元素

如何删除动物园系列的最后100个元素?

我知道名字[-element]符号,但我不能让它减去一个完整的部分

r vector elements

43
推荐指数
5
解决办法
6万
查看次数

在第一个之后跳过所有其他元素

我有一般的想法,如何在Java中这样做,但我正在学习Python,不知道如何做到这一点.

我需要实现一个函数,该函数返回一个包含列表中每个其他元素的列表,从第一个元素开始.

到目前为止,我已经并且不确定如何从这里开始,因为我只是在学习Python中的for循环是如何不同的:

def altElement(a):
    b = []
    for i in a:
        b.append(a)

    print b
Run Code Online (Sandbox Code Playgroud)

python for-loop elements

42
推荐指数
5
解决办法
13万
查看次数

当我尝试从列表中删除元素时,如何忽略ValueError?

如果我在列表中不存在a.remove(x)时调用,如何忽略"not in list"错误消息?xa

这是我的情况:

>>> a = range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.remove(10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> a.remove(9)
Run Code Online (Sandbox Code Playgroud)

python error-handling list elements

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