如果元素不存在,我如何获取搜索到的选择器的字符串?
例如:
$( 'parent child.class' ).plugin( )
在我的插件中,我想获取字符串"parent child.class"
,但$( 'parent child.class' )
不存在。
我将开始挖掘jQuery源代码,但我想我会问,如果有更多知识的人知道这一点。
答案 0 :(得分:3)
你不能。
jQuery对象有一个.selector
属性,你可以在你的插件中使用它(虽然它似乎打算与jQuery一起使用),但是 - 它是一个很大但是 - 并非所有jQuery对象都是用选择器字符串。考虑使用.yourPlugin()
:
$('div.someClass').add(document.getElementById("test"))
.add("<div>Hello</div>")
.filter(function() {
return $(this).attr("data-test") == "blah";
})
.parents()
.yourPlugin();
考虑哪个选择器最终导致jQuery对象传递给.yourPlugin()
,无论它是否包含任何元素,都没有意义。
(我想如果你知道你的插件只会被你使用,你只会传递它使用选择器然后创建的jQuery对象,你可以在你的内部使用this.selector
插件...)
答案 1 :(得分:2)
有选择器属性:
$.fn.plugin = function() {
if (this.length == 0) {
return this.selector;
}
};