2010-10-16 40 views
7

我正在使用Jquery通过变量查找类。所以,Jquery从变量中选择类

var className = "whatever"; 

$( “#集装箱UL礼”),如果包含元素与类名,这样做

我怎样写上面的代码?

是否

$("#container ul li").find("."+ className).each(function(){ 
console.log("I found one"); 
}); 

显然代码不起作用

回答

18

是在<li>元素的className?如果是这样,你可以这样做:

$('#container ul li.' + className)... 

你只是串接的className到选择的字符串(与the class selector)。

或者这会给你同样的结果。

$('#container ul li').filter('.' + className)... 

哪一个是类似于您.find()的解决方案,但uses .filter()限制发现那些与className<li>元素。


如果与className的元素是<li>元素的后裔,那么using .find()应该工作,或者你可以这样做:

$('#container ul li .' + className)... 

...这看起来几乎相同,如上图所示,但在li之后引入空格,即a descendant selector

+0

过滤器解决方案有效。感谢您澄清find()用于发现后代! – 2010-10-16 23:52:40

+0

@RisingSun - 不客气。 :O) – user113716 2010-10-16 23:56:53