Jquery .find()基于两个属性的逻辑OR

Jquery .find()基于两个属性的逻辑OR,jquery,Jquery,我正在使用name和lastname作为div <div class="user" name="Sheldon" lastname="Cooper">...</div> 我两个都做得怎么样?我如何过滤那些在两个属性中都不包含过滤值的属性呢?类似的东西可能不适用于这两个属性 ContactsList.find(“.user:not([name*=”+filter+”]):not([lastname*=“+filter+”))”)。parent().hide() 或者你可以

我正在使用
name
lastname
作为
div

<div class="user" name="Sheldon" lastname="Cooper">...</div>

我两个都做得怎么样?我如何过滤那些在两个属性中都不包含过滤值的属性呢?

类似的东西可能不适用于这两个属性

ContactsList.find(“.user:not([name*=”+filter+”]):not([lastname*=“+filter+”))”)。parent().hide()

或者你可以这样做

ContactsList.find(“.user[name*=”+filter+”],.user[lastname*=“+filter+”]))”.parent().hide()


还请注意,which is选择那些
包含字符串的字符串

,类似这样的内容可能不适用于两者

ContactsList.find(“.user:not([name*=”+filter+”]):not([lastname*=“+filter+”))”)。parent().hide()

或者你可以这样做

ContactsList.find(“.user[name*=”+filter+”],.user[lastname*=“+filter+”]))”.parent().hide()


还请注意,which is选择那些
包含字符串的字符串
,如果我理解这个问题,您可以尝试以下方法:

你把一切都藏起来了

ContactsList.find('.user').parent().hide();
您将显示筛选结果:

ContactsList.find('.user[name="'+ filter + '"], .user[lastname="'+ filter + '"]').parent().slideDown();

如果我了解问题所在,您可以尝试以下方法:

你把一切都藏起来了

ContactsList.find('.user').parent().hide();
您将显示筛选结果:

ContactsList.find('.user[name="'+ filter + '"], .user[lastname="'+ filter + '"]').parent().slideDown();

您必须创建了一个自定义的
表达式,因为jQuery核心不会使用代码的显示方式
attribute:Contains()
过滤属性

还应该使用
data-
属性,并利用jQuery
data()
方法读取它们

我建议使用
过滤器(函数)
。它比选择器提供了更大的灵活性

HTML


您必须创建了一个自定义的
表达式,因为jQuery核心不会使用代码的显示方式
attribute:Contains()
过滤属性

还应该使用
data-
属性,并利用jQuery
data()
方法读取它们

我建议使用
过滤器(函数)
。它比选择器提供了更大的灵活性

HTML


我想知道选择器是否可以连接:
('.user[name=“”+filter+”][lastname=“”+filter+”])
-请不要在
后留下空格。user
因为选择器将查找子项,而不是
。user
本身我想知道选择器是否可以连接:
('.user[name=“”+filter+”][lastname]=““+filter+”“]”)
-不要在
之后留下空格。user
因为选择器将查找子项,而不是
。user
本身有一种方法使其不区分大小写?有一种方法使其不区分大小写?
$('.user[name]').filter(function(){
    var term = filter.toLowerCase(),
        data = $(this).data()
        name = data.name.toLowerCase(),
        lastName = $data.lastname.toLowerCase()
    return name.indexOf(term)>-1 || lastName.indexOf(term)>-1
})
ContactsList.find(".user")
 .parent().hide()  // hide all parents of .user elements
 .end()  // revert collection back to .user elements
 .filter("[name*=" + filter + "], [lastname*=" + filter + "]")  // filter the collection based on attribute values
 .parent().slideDown(); // show the filtered elements