在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
答案 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)或将您当前的代码置于共享布局或索引页面下方