检查if语句中是否存在具有data属性的span

时间:2013-05-28 01:26:12

标签: javascript jquery

我正在尝试使用指定的用户名搜索数据属性“datanamed”是否存在任何元素。

代码如下:在if语句中,它无法正常工作。

if($('*[datanamed=" + username + "]') === undefined){ 

}
else {

}

1 个答案:

答案 0 :(得分:2)

jQuery返回一个jQuery对象,它不能是 undefined ,你应该使用重新调整的jQuery对象的length属性,同时注意如果username是一个变量,代码中的字符串连接错误,标准IDE可以显示问题(缺少引号):

if ( $('*[datanamed="' + username + '"]' ).length === 0 ) { 
   // doesn't exist
} else {
   // exists
}

请注意,异步选择器*非常昂贵。在过滤之前,它会选择DOM中的所有现有元素。如果只有几个元素可以具有此属性,则可以使用.filter()方法:

if ( $('a, div, span').filter('[datanamed="' + username + '"]').length === 0 ) { 
   // doesn't exist
} else {
   // exists
}

PS :HTML5 data-*属性的正确语法为data-*,您的属性无效。它应该是data-named