2010-04-08 57 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();