jQuery选择器中AND和OR的组合

时间:2009-08-27 05:24:57

标签: jquery css-selectors

我有一个jQuery选择器,语法如下:

$('input[type=image]').not('.xyzClass').click(function{
    //some functionality
});

因此,这为所有类型为image的组件提供了特定的单击功能,并且没有类xyzClass

*****我已经修改了问题以反映最新的更改,下面的一些答案对于以前的版本是正确的,但对于修改后的版本可能不正确。为此道歉。

我们需要一个具有类条件的OR条件。这样 任何“输入”具有类型为图像的组件都应选择IF

  1. 类不是xyzClass
  2. id包含字符串someIdString
  3. 你能帮忙修改现有的选择器吗?

    干杯。

3 个答案:

答案 0 :(得分:2)

更新回答

$('*:not(.xyzClass)[id*=containsThisValue]')

对于您的更新问题,虽然未经过优化,但我建议您尽可能多地指定。

原始回答:

function someSpecificFunctionality() {
}

$(els)

.click(someSpecificFunctionality)
.data('someSpecificFunctionality', true)


$(els).filter(function() {

    return 
        $(this).not('.xyzClass') && 
        $(this).data('someSpecificFunctionality') == true

});

答案 1 :(得分:2)

$(":image:not(.xyzClass),:image[onclick*='someSpecificFunctionality']");

答案 2 :(得分:0)

使用逗号执行“OR”:

$('input[type=image]')
    .not(".xyzClass,[onclick*='someSpecificFunctionality()']")
    .click(...);

我不确定你是如何定义onclick的:它是在HTML中还是以编程方式添加?