3

我想将一个选择器存储在一个变量中,并且我想在需要查找“.active”类的实例中使用该对象。这将返回“.active”的对象。

基本上,我将如何编写这样的选择器: $('.classname.active')

var $varName = $('.multipleDivs');
$varName.hasClass('active'); // this returns true, but not the object

var $varName = $('.multipleDivs'); 
$('.active', $varName); // this returns an empty array
4

6 回答 6

2

.hasClass()根据设计返回布尔值 - 它测试元素是否具有命名类。要向下过滤,您需要.filter()(如果“.multipleDivs”也有“.active”类)或.find()(如果“.active”元素是“.multipleDivs”的子级)。

于 2012-10-12T21:49:44.483 回答
2
var $varName = $('.multipleDivs');
$varName.hasClass('active'); // this returns true, but not the object

您在这里检查任何具有类 multipleDivs 的 div 是否具有活动类

var $varName = $('.multipleDivs'); 
$('.active', $varName); // this returns an empty array

在这里,您正在寻找具有活动类的元素,这些元素是 multipleDivs 类元素的子元素。

于 2012-10-12T21:52:04.637 回答
2

您最初的猜测是正确的方法。

$(".multipleDivs.active")

或者,你可以做

$varName.filter(".active")
于 2012-10-12T21:48:52.513 回答
1

以下应该这样做并使用您提到的语法

var clsName = 'multipleDivs';
var elementsWithBothClasses = $('.' + clsName + '.active');

如果您已经拥有所有 jQuery 对象multipleDivs,那么您可以使用$.filter

var multipleDivs = $('.multipleDivs');
multipleDivs.filter(".active"); // filters in place, so it changed multipleDivs
于 2012-10-12T22:38:57.017 回答
0
var someRandomClass = "bill";
var results = $('.' + someRandomClass + '.active');

小提琴:http: //jsfiddle.net/gromer/fSrAY/

于 2012-10-12T21:49:44.543 回答
0

这是一种方法:

var $varName = $('.multipleDivs');
$varName.each(function(){
  if($varName.hasClass('active');){
    $varName.whateverFunctionYouWantToDo();
  }
});
于 2012-10-12T21:54:35.150 回答