我有多个类的字段。我想使用其中一个类作为选择器,我该怎么做?
通用示例:
<input id="from"/><div class="error from">errormessage</div>
<input id="to"/>
<div><input id="when" /></div><div class="error when">errormessage</div>
因为这是一个带有类的div.error,我想添加一个特定的类来输入#from,同样适用于调用时的输入。请注意,“when”包含在div中。页面需要这样的几个变体。因此,树遍历不是一个合适的解决方案。
答案 0 :(得分:7)
有关更新的问题:
我认为这就是你所追求的,因为元素既然是以前的兄弟,也包含在一个兄弟中:
$(".error").prev().find("input").andSelf().filter("input").addClass("test");
上一个问题:
使用.class
selector,如下所示:
$(".myCass")
您还可以通过链接来选择仅具有多个类的元素,例如:
$(".myCass.myClass2.myClass3")
只会选择所有3个类的元素。
答案 1 :(得分:0)
jQuery选择器只是字符串,HTML属性只不过是字符串而常规JavaScript具有字符串运算符和函数。
这里有一些(并且没有意义的)代码片段,将这些想法放在一起:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css"><!--
--></style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
$("div").css({border: "1px solid black"}).each(function(){
var classes = this.className.split(/\s+/);
for(var i=0, len=classes.length; i<len; i++){
$("." + classes[i]).append("<p>I have class " + classes[i] + "</p>");
}
});
});
//--></script>
</head>
<body>
<div class="foo bar dot">foo bar dot</div>
<div class="bar dot">bar dot</div>
<div class="dot">dot</div>
</body>
</html>
这是一个很好的概念证明,但你应该仔细检查你的设计是最简单的。