3

我正在编写一个用户脚本,它可以通过以下方式获取元素:

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

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

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

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

4

3 回答 3

4

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

于 2013-02-12T19:29:07.423 回答
4

Sushanth 的回答是正确的,但根据这篇文章,您可以使用

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

然后可靠地使用

var theElement = $(theElements[theElements.length - 1]); // wrapping in $() is optional

这是值得做的,因为 $(selector) 是一项相当昂贵的操作。

编辑- 仅适用于 ie9 及更高版本虽然http://caniuse.com/getelementsbyclassname

于 2013-02-12T19:38:49.770 回答
4

不..它不会自动刷新。

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

您希望的选择器不是实时节点列表。

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

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

于 2013-02-12T19:29:50.060 回答