.attr('class')返回多个类名,如何选择我想要使用的名称?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.attr('class')返回多个类名,如何选择我想要使用的名称?相关的知识,希望对你有一定的参考价值。
当我使用jQuery .attr('class')时,我得到了'class1 class2 class3',它们应该是单独的类,我如何选择其中一个类,例如我想在class1上更改.css,我将如何遍历返回的类名,这些是我必须拆分的字符串,还是这些对象?谢谢!
BTW,我的html看起来像这样:
<td class ="class1 class2 class3">
我通过在返回的.attr('class')上使用.spilt来实现它。我的目标是获得第二个类,并在其上执行一些.css()。
class
或className
属性在单个字符串中返回以空格分隔的类名列表。如果要手动操作该属性,则必须手动将字符串解析为其生成的类名。它是一个字符串,而不是单个对象。
现在,幸运的是,当你使用jQuery时,你很少自己必须这样做。如果要添加,删除或更改单个类名,可以使用这些jQuery方法的某种组合,这些方法将为您执行所有解析:
.hasClass(classname)
.replaceClass(oldName, newName)
.removeClass(classname)
.addClass(classname)
要删除一个类并添加一个单独的类,将这两个函数链接在一起并不罕见。
x$.removeClass("foo").addClass("bar");
如果你真的只想在选择器中使用类名,那么你不必担心对象上有多少其他类名,因为jQuery中内置的选择器库将为你处理所有这些。例如:
$(".myClassName").css("color", "red");
将在className属性中的任何位置找到具有myClassName
的所有对象,并将指定的CSS应用于这些对象。
你可以使用jquery class methods(addClass,removeClass,hasClass,toggleClass)来操作类
使用class selector并让jQuery为您完成工作:
$('td.class1').css();
$(document).ready(function() {
alert('Class 1 = ' + $('#test').attr("class").split(" ")[0]);
alert('Class 2 = ' + $('#test').attr("class").split(" ")[1]);
alert('Class 3 = ' + $('#test').attr("class").split(" ")[2]);
})
HTML
<div id="test" class="class1 class2 class3"></div>
现场剧本:http://jsfiddle.net/7ZDP4/
$('td.class1').css('background','red');
$('td.class2').css('background','blue');
编辑,给定一个对象,您还可以使用:
if ( $(this).hasClass('class1') ){ /* do this */ } else { }
我发现最简单的方法是使用attr“href”作为单独的实体而不是使用类。
<td class="class1 class2" href="WhatYouWantToGrab" ></td>
然后在jQuery中你会这样做
$('.class1.class2').click(function() {
var yourVariable = $(this).attr('href');
});
希望这可以帮助。
以上是关于.attr('class')返回多个类名,如何选择我想要使用的名称?的主要内容,如果未能解决你的问题,请参考以下文章
JQuey中 attr('checked', true)设置状态只有第一次有用
ie8下jquery更改IMG src路径,图片无法显示,如何解决! 如:$('img[ectype="avatar"]').attr('src',