在执行jQuery之前如何检查类名是否存在

时间:2018-12-16 12:59:59

标签: jquery

在jQuery执行之前,如何首先检查页面上是否存在类名?我读到您可以使用length()方法进行检查。现在,我的jQuery在每个页面上运行,如果我要更改的类名不在页面上,则会出现错误。 TypeError:未定义或空引用的'oTable'。下面是我的代码。

    var oTable;
    jQuery( document ).ready( function($) {
      'use strict';

    if ($('.mytable2').length > 0) {// Run the code below only if the class mytable2 exists

     // start datatable
    oTable = $('.mytable2').DataTable( {
        pageLength: 10,
        searching: true
     });
    // end datatable

    // start yadcf
    yadcf.init(oTable, 
     [
      {
       column_number : 0,
       filter_container_id: 'external_filter_container1',
       filter_default_label: 'Select',
       }
      ]
     );
    // end yadcf
    }}); // end ready function and if mytable2 exists

3 个答案:

答案 0 :(得分:0)

您的if条件应该起作用。虽然我在您的代码中看不到任何foo

另一种解决方案是使用hasClass

见下文

if ($(".my-class").length > 0) {
  console.log('class exists')
}

if ($("table").hasClass('my-class')) {
  console.log('table has class')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="my-class">
</table>

答案 1 :(得分:0)

如果要在执行jquery之前(甚至在加载jquery之前)检查类名是否已经存在,请使用document.getElementsByClassName

例如:

if ( document.getElementsByClassName('mytable2').length ) {
    // class exists in document, handle accordingly
}

答案 2 :(得分:0)

有两种解决方法。 1)您将jquery引用放在html文档的头部 2)或将您当前的代码置于共享布局或索引页面下方