javascript - 如果元素存在则返回一个函数

标签 javascript jquery

如果 DOM 中已经存在一类元素,我正在寻找最有效的方法来破坏函数。

比如检查一类span是否存在,目前我正在使用

$(function() { 
    //logic will execute

    if ( $(this).find('span.myspan').length ) return;

    //logic will execute if search doesn't find span.myspan
});

我见过一些使用 if/else 而不是 return 的例子。一些使用 find() 的例子已经使用了

.find('span.myspan')[0]

除了 .length 之外,没有什么可以检查它是否存在吗?或者也许是一种将它与 null 进行比较的方法?

那么在函数内部,检查 DOM 中是否存在元素的最有效方法是什么?如果存在,则立即返回该函数?

最佳答案

使用原生 JS

    console.time('t');
    document.querySelector('.label-key');
    console.timeEnd('t')
    t: 0.000ms
    console.time('t');
    $('.label-key'); 
    console.timeEnd('t')
    t: 1.000ms

Check out jsPerf jsperf test

也可以反过来做。 检查元素是否不存在,然后做一些事情。如果确实如此,就让它一个人呆着吧。

$(function() { 
    //logic will execute

    if (! document.querySelector('.label-key'); ){

    //logic will execute if search doesn't find span.myspan
   }
});

更多的是一种风格。

关于javascript - 如果元素存在则返回一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256597/

相关文章:

javascript - 如何使用 Javascript 根据先前的下拉值显示第二个下拉列表

javascript - 如何删除 Pixi 中的按钮?

javascript - 如何在 PhantomJS 中包含多个 JavaScript 库?

javascript - 为跨域 XHR 丢弃 cookie 不是更简单吗?

javascript - 扩展以前解决方案中的表行问题

jquery - 如何阻止其他网站发送跨域ajax请求?

javascript - 获取 X,Y 坐标并在单击图标时传递值 (JQuery)

jquery - 固定位置问题

javascript - jQuery Find() 和 XML 在 IE 中不起作用

jquery - 如何在 jQuery UI 自动完成中实现 "mustMatch"和 "selectFirst"?