Javascript 如何检查jQuery插件中是否存在元素?
我的问题不言自明——我正在编写一个jQuery插件,用户在其中指定一个选择器。我需要检查选择器是否存在,如果存在,则执行一些代码。然而,我不知道如何在我的jQuery插件中进行检查 我之所以需要这样做,是因为我正在尝试创建类似于jquery readyselector()的东西来处理TurboLink 我希望能够像这样使用函数:Javascript 如何检查jQuery插件中是否存在元素?,javascript,jquery,ruby-on-rails,jquery-plugins,turbolinks,Javascript,Jquery,Ruby On Rails,Jquery Plugins,Turbolinks,我的问题不言自明——我正在编写一个jQuery插件,用户在其中指定一个选择器。我需要检查选择器是否存在,如果存在,则执行一些代码。然而,我不知道如何在我的jQuery插件中进行检查 我之所以需要这样做,是因为我正在尝试创建类似于jquery readyselector()的东西来处理TurboLink 我希望能够像这样使用函数: $("#mySelector").pageReady(function() { // This is only triggered if #mySelector
$("#mySelector").pageReady(function() {
// This is only triggered if #mySelector exists.
console.log('test')
});
以下是我的尝试:
(function($) {
$.fn.pageReady = function(fn) {
var that = this;
$(document).on('ready page:load', function() {
if (that.length <= 0){
return
} else {
fn();
}
});
}
})(jQuery);
(函数($){
$.fn.pageReady=函数(fn){
var=这个;
$(document).on('ready page:load',function(){
如果(那个)长度
或
我也遇到了同样的问题,并且对id的长度可能为零感到非常困惑,即使它在页面上。我检查了源代码,id就在那里!结果证明我正在测试
$('mySelector').length > 1
而不是
$('#mySelector').length > 1
i、 e.我遗漏了#
。我知道上面的问题没有这个错误,但我注意到,BEG在一个代码片段工具中测试了这个问题,它成功了,所以可能原始代码遗漏了#
。在任何情况下,我想其他人也会犯同样的错误,所以这个答案应该对他们有用我为这个问题添加了更多信息-请看一看。我不是在$(document.ready()中调用这个插件。这也是在插件的上下文中,如果你阅读了我的代码,我已经试过了。你已经有了什么问题?@BenG抱歉!我应该包括在内。我已经更新了OP-基本上是这样。长度始终为0,即使元素存在。当我在答案片段工具中测试它时,它工作得很好。@BenG我如何重现你的答案测试?答案片段工具在哪里?如果运气好的话,我也有同样的问题。
$('.selector').length > 0
$('mySelector').length > 1
$('#mySelector').length > 1