jQuery是否有"存在"功能?
时间:2020-03-05 18:44:04 来源:igfitidea点击:
如何检查jQuery中元素的存在?
我当前的代码是这样的:
if ($(selector).length > 0) { // Do something }
有没有更优雅的方式来解决这个问题?也许是插件或者功能?
解决方案
回答
是的!
jQuery.fn.exists = function(){ return this.length > 0; } if ($(selector).exists()) { // Do something }
这是为了响应:与Jeff Atwood一起进行的"牧群代码"播客
回答
我们可以使用:
if ($(selector).is('*')) { // Do something }
也许更优雅一点。
回答
如果你用过
jQuery.fn.exists = function(){return ($(this).length > 0);} if ($(selector).exists()) { }
我们可能会暗示,如果没有,链接是可能的。
这样会更好:
jQuery.exists = function(selector) {return ($(selector).length > 0);} if ($.exists(selector)) { }
或者,从常见问题解答中:
if ( $('#myDiv').length ) { /* Do something */ }
我们还可以使用以下内容。如果jQuery对象数组中没有值,那么获取数组中的第一项将返回undefined。
if ( $('#myDiv')[0] ) { /* Do something */ }
回答
if ( $('#myDiv').size() > 0 ) { //do something }
size()
计算选择器返回的元素数量
回答
在JavaScript中,所有内容都是"真实的"或者"虚假的",对于数字" 0"(和NaN)表示" false",其他所有内容均为" true"。所以你可以这样写:
if ($(selector).length)
我们不需要> 0
部分。