jQuery future元素选择器

时间:2012-08-17 08:59:47

标签: javascript jquery jquery-selectors

我做了一个简单的选择器,例如:

$('div').eq(0).selector;// returns     "div.slice(0,1)"
$($('div').eq(0).selector);// would not work... 

如果eq(0)没有在那里它会工作,因为它没有切片但是一个合适的可用选择器。

我的问题是,我不知道使用.selector,是不是很有帮助,我还没有尝试过其他过滤器等...

$('div').children().selector// returns "div.children()"

我正在使用jQuery 1.7.1,当它返回甚至无效的内容时,我真的看不出这个.selector的用途。

我正在尝试制作一个插件,但我想使用.selector来获取将来添加的元素(即时)。

更新

$.fn.myplugin(function (){
  $(this.selector)//select future elements...
})

或者还有另一种方法吗?

3 个答案:

答案 0 :(得分:0)

如果您正在制作插件,您通常会提供一个选项,用于刷新元素列表的选择器。此选项也可以向最终用户公开,因此可以自定义。

$('div').myPlugin({
    elements: 'ul > li'
});

如果需要检测未来元素绑定事件,请使用.on()使用事件委派。

简而言之,您实际上是在容器上定义事件处理程序。如果最初接收事件的元素与指定的选择器匹配,则事件将冒泡到容器并执行。

<div id="container">
    <span>Some text</span>
    <button>Click me</button>
</div>

$('#container').on('click', 'button', function() { ... });

这将绑定元素#container上的一个处理程序,如果单击了一个元素<button>,则会执行事件处理程序...而且还会添加到DOM中的任何<button>元素之后。

答案 1 :(得分:0)

使用选择器表达式

$('div:eq(0)').selector; // returns 'div:eq(0)'

更多here

答案 2 :(得分:0)

您必须侦听DOM更改,因此请参阅this answer

OR

您可以使用setInterval每隔n秒检查匹配的根元素的更改。