JavaScript / jQuery是否总是拥有该元素的最新元素或版本?

时间:2013-02-12 19:27:15

标签: javascript jquery

我正在编写一个用于抓取元素的用户脚本:

var theElement = $('div.someClass:last');

要抓取类.someClass中的最后一个元素,以便我可以解析它。

这就是我的问题所在。此页面上还有另一个脚本,每隔一段时间动态添加一个新的<div class="someClass">。我希望页面上的最后一个元素始终选择.someClass

Javascript / jQuery是否总是有最新的元素,还是我必须手动“刷新”它?

3 个答案:

答案 0 :(得分:4)

评估您的选择器并返回结果。如果你想做你想要的,你将不得不重新评估那个选择器。

答案 1 :(得分:4)

没有..它不会自动刷新。

每次在选择器上直接修改某些内容时,最好再次缓存它。

您希望的选择器不是live Node list.

在这种情况下,如果选择器中似乎有任何变化,我宁愿在第一种情况下根本不进行缓存。

这样我就可以直接使用选择器,而不是缓存的选择器。

答案 2 :(得分:4)

Sushanth的回答是正确的,但根据this article你可以使用

var theElements = document.getElementsByClassName('someClass');

然后可靠地使用

var theElement = $(theElements[theElements.length - 1]); // wrapping in $() is optional
作为$(选择器)值得做的

是一项非常昂贵的操作。

编辑 - 仅适用于ie9及以上http://caniuse.com/getelementsbyclassname