2

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

$('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...
})

或者有另一种方法吗?

4

3 回答 3

0

Use selector expressions

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

More here.

于 2012-08-17T09:05:28.213 回答
0

您必须监听 DOM 更改,为此请参阅此答案

或者

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

于 2012-08-17T09:10:56.840 回答
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一个元素,将执行事件处理程序......但也适用于之后添加到 DOM 的任何元素。<button><button>

于 2012-08-17T09:03:17.883 回答