我正在尝试使用指定的用户名搜索数据属性“datanamed”是否存在任何元素。
代码如下:在if语句中,它无法正常工作。
if($('*[datanamed=" + username + "]') === undefined){
}
else {
}
答案 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
。