我正在编写一个用于抓取元素的用户脚本:
var theElement = $('div.someClass:last');
要抓取类.someClass
中的最后一个元素,以便我可以解析它。
这就是我的问题所在。此页面上还有另一个脚本,每隔一段时间动态添加一个新的<div class="someClass">
。我希望页面上的最后一个元素始终选择.someClass
。
Javascript / jQuery是否总是有最新的元素,还是我必须手动“刷新”它?
答案 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