Javascript 如果JQuery可以';找不到某种元素?

Javascript 如果JQuery可以';找不到某种元素?,javascript,jquery,datatables,Javascript,Jquery,Datatables,我使用JQuery是为了在整个web应用程序中拥有漂亮的表,但是在所有包含表的不同文件中进行更改和部署变得越来越麻烦 $(function(){ $("#exampleTable").dataTable({ "stateSave": true, "stateDuration": -1 }); }) 我想到了一个想法,就是在所有文档中包含相同的JavaScript文件,这些文档都有一个DataTable,它从一个地方初始化所有不同的表 显

我使用JQuery是为了在整个web应用程序中拥有漂亮的表,但是在所有包含表的不同文件中进行更改和部署变得越来越麻烦

$(function(){
     $("#exampleTable").dataTable({
         "stateSave": true,
         "stateDuration": -1
     });
 })
我想到了一个想法,就是在所有文档中包含相同的JavaScript文件,这些文档都有一个DataTable,它从一个地方初始化所有不同的表

显然,从一个页面到另一个页面,大多数元素实际上并不存在于该页面上,因此JQuery将无法找到它们

我的问题是:这样可以吗?有什么影响吗?我喜欢认为这是一个理想的解决方案,但我想确保不会有任何问题。谢谢

编辑:


我想我可以给我想要DataTable的每个表指定一个特定的类,并在JavaScript文件中声明整个类,这样就不会有太多未找到的对象。但问题依然存在。我希望在如何影响性能方面有一个相当好的答案。

如果您尝试在不存在的元素上运行datatables,这很好,大多数jQuery插件通过迭代当前jQuery集合中的每个元素并应用一些操作来工作。如果集合为空,它将返回。它不会对性能产生任何影响(除了DataTables仅在实际应用于表时才添加的内容)


Edit:我查看了源代码,在运行
this之前,他们对
this
应用了一组方法。每个
将实际的dataTables功能应用于集合中的每个元素。这仍然不会影响性能,尽管他们没有调用任何方法:

就功能而言,这不会导致任何问题。jQuery选择器将进行搜索,不查找任何内容(希望如此),然后在任何内容上执行命令

如果您不能确定其他人不会在另一个页面上创建具有此ID的元素,则这是不好的。此外,如果这种做法变得猖獗,并且你的所有页面上都有大量不相关的命令,那么它将开始减慢你的网站速度