2010-04-08 75 views
3

我想基于两个属性的过滤器过滤,首先是id和第二被称为水平jQuery的过滤器() - 多属性

即ID =“someId”电平=“someLevel”

这个代码不应该做这个伎俩......它似乎不工作。

$(".someClass").filter("#"+id, "[level='"+level+"']").someAction(); 
+0

顺便说一句:我想做一个SQL和语句的等价不是OR语句。 – Ankur 2010-04-08 08:57:36

回答

2

您提供两个参数:

.filter("#someId", "[level='someLevel']") 

你可能想这样的:

.filter("#someId[level=someLevel]") 
3

怎么样

$(".someClass").filter("filter1").filter("filter2") 

0

如果它的条件你真的应该有一个帮手function like string format

string.Format = function(text) 
{ 
    //check if there are two arguments in the arguments list 
    if (arguments.length <= 1) 
    { 
     //if there are not 2 or more arguments there’s nothing to replace 
     //just return the original text 
     return text; 
    } 
    //decrement to move to the second argument in the array 
    var tokenCount = arguments.length - 2; 
    for(var token = 0; token <= tokenCount; token++) 
    { 
     //iterate through the tokens and replace their placeholders from the original text in order 
     text = text.replace(new RegExp("\\{" + token + "\\}", "gi"), 
               arguments[ token + 1 ]); 
    } 
    return text; 
}; 

然后将其简单:

var filter = string.format("#{0}, [level='{1}']", id, level); 
$(".someClass").filter(filter).someAction();