在Javascript中查找以前的兄弟元素

时间:2015-02-24 16:49:14

标签: javascript jquery

在编写一些代码时,我遇到了两种做同样事情的方法。我正在寻找找到前一个兄弟的最有效方法,以便从中提取字符串。

我的项目目前使用jQuery,因此我可以使用这两个选项。

https://developer.mozilla.org/en-US/docs/Web/API/Node/previousSibling

http://api.jquery.com/prev/

使用哪个更好的选项以及为什么?

4 个答案:

答案 0 :(得分:3)

如果您可以在Vanilla JavaScript中执行此操作,请执行此操作。

jQuery总是会变慢,因为它会运行很多函数调用和抽象层 - 这些层使得(假设*)更容易编写代码,但浏览器必须为相同的效果做更多的工作。

*也许我已经做了很长时间的Vanilla JavaScript,但我发现个人使用jQuery很糟糕......

答案 1 :(得分:1)

如果您在获取它之后将其作为jQuery对象使用它,请使用jQuery。否则,将它重新转换为jQuery对象是非常昂贵的。如果您只使用Vanilla JS,请使用纯DOM方法。

答案 2 :(得分:1)

previousSibling是一个原生属性,显然它会更快但它是只读的,你只能用它来读取前一个节点的属性。但是在IE8或更低版本中不支持它,因此您必须在这些浏览器中使用previousElementSibling,这些浏览器还提供对前一节点的只读访问权限。

如果你要再次在jQuery中包装返回的节点,我建议你使用prev,因为它抽象了所有这些浏览器的差异,并返回一个jQuery对象。所以这有一点开销。

答案 3 :(得分:0)

Jquery仅在内部使用previousSibling方法,因此它比本机方法(即previousSibling)慢一点。唯一的事情是返回不同的结果,previousSibling返回一个节点,prev将返回同一节点的jquery包装元素。