现在我有一个动态字符串,它将值分配给特定的div类。 输出看起来像这样
<div class="12923"></div>
我想找到'randNumber'div,然后检查它是否有另一个类'x'
目前我现在所做的不起作用:
var randNumber = 12923
var lookingForYou = $$('.'+randNumber);
if (lookingForYou.hasClass('XCLASS')){alert('XCLASS FOUND!');}
答案 0 :(得分:2)
$$返回一个Elements实例,Elements是一个类似数组的类 无论如何,因为你基本上是过滤,你可以告诉Slick你需要一个同时具有这两个类的元素:
var randNumber = 12923;
if($$('.' + randNumber +'.XCLASS').length>0){
alert('XCLASS FOUND');
}else{
//dostuff
}
或者您可以使用其中一种Elements方法,我认为。这将是您最好的选择:
var randNumber = 12923
var lookingForYou = $$('.' + randNumber);
alert(lookingForYou.some(function(el){
return el.hasClass('XCLASS');
}))
编辑:
添加一些链接:
A better way to use Elements on MooTools blog
在我的第二个例子中,我使用了一些方法,通过查看源代码没有重载,但只是Array.prototype.some中的那个:
答案 1 :(得分:1)
$$返回所有匹配元素的数组。不确定您是否可以在阵列上执行hasclass。可能必须做一个.each()然后做。尝试$('body')。getElement('。'+ randNumber).hasClass('XCLASS')这样你就可以抓住1个elem,如果你不想搞乱这个数组的话。
答案 2 :(得分:1)
下面:
if (lookingForYou.hasClass('XCLASS')){alert('XCLASS FOUND!');}
$$()
返回一个数组,hasClass()
对数组的每个元素执行检查,返回一个布尔数组。不幸的是,当您检查if (...)
时,返回数组即使所有值都是false
,也会被评估为true
,因为它不是空的。