Javascript 如何检查jQuery插件中是否存在元素?

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

我的问题不言自明——我正在编写一个jQuery插件,用户在其中指定一个选择器。我需要检查选择器是否存在,如果存在,则执行一些代码。然而,我不知道如何在我的jQuery插件中进行检查

我之所以需要这样做,是因为我正在尝试创建类似于jquery readyselector()的东西来处理TurboLink

我希望能够像这样使用函数:

$("#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