从同一属性中的类中选择一个类
我有一些元素,点击后会触发一些动作并选择“class”属性。从同一属性中的类中选择一个类
jQuery中它的简单使用$(this).attr('class')
但问题是,当我们要选择多个类,比如,当我们有例如一类:
<a href="#" class="class1 class2"></a>
,我们只想得到第一类(class1),因为当我们使用这个:$(this).attr('class')
时,我们将得到“class1 class2”。
有什么想法吗?
要获得第一类:
$(this).attr('class').split(' ')[0];
然而,类的想法是,他们是无序,因此没有jQuery的方法直接做到这一点。您可能希望包括data-
属性来代替:
<a href="#" class="class2" data-target="someId"></a>
使用jQuery 1.4.3+您可以直接访问data-target
属性有:
$(this).data('target');
不知道,如果他们是一个方式来做到这一点jQuery的,但我只想得到的类,然后只用一个分裂的功能,并采取分流阵列中的第一项
$(this).attr('class')// which happens to have "class1 class2" in it
var mySplitResult = myString.split(" ");
mySplitResult[0] // should be "class1"
希望这有助于
编辑 - >>似乎box9击败了我。不错的工作:)
今天有这个问题。想出了一个稍微不同的解决方案来处理不知道类的顺序。
仍然假设类名(或其中的一些)是已知的我使用了正则表达式。
获取类列表作为字符串
var classList = $(this).attr('class');
回报类似“1类2类我,特殊类1级-4”
var pattern = /\bmy-special-class-[0-9]+\b/;
在这种情况下,我想找到任何以“my-special-class-”开头并以数字结尾的课程
var matchResult = classList.match(pattern);
检查是否有上午ATCH(ES)。在我的情况下,我知道最后只会有一个类有一个数字(我不知道)。我想用这个jquery调用,所以我附加了“。”到字符串
if (matchResult) {
var foundClass = "." + matchResult[0]; // assuming one class (loop for more)
var elementsWithClass = $(foundClass);
}
提供一些代码预览或演示(jsFiddle)来描述您的答案。 – 2015-02-06 08:20:01
大概你不想(或不能)使用.hasClass()来检测它是否有特定的类? – ajcw 2011-03-21 21:37:49
@约翰:这个想法是要调用一个div的内容,这个div的id与点击按钮的第一个类相同,第二个类用于样式。 – MohamedKadri 2011-03-21 21:41:30
我们可以看到该想法的示例代码吗? – BoltClock 2011-03-21 22:19:24