在jquery中:使用attr(“class”)值作为选择器?

时间:2010-11-04 12:53:32

标签: jquery jquery-selectors

我有多个类的字段。我想使用其中一个类作为选择器,我该怎么做?

通用示例:

<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中。页面需要这样的几个变体。因此,树遍历不是一个合适的解决方案。

2 个答案:

答案 0 :(得分:7)

有关更新的问题:

认为这就是你所追求的,因为元素既然是以前的兄弟,也包含在一个兄弟中:

$(".error").prev().find("input").andSelf().filter("input").addClass("test");

You can test it out here


上一个问题: 使用.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>

这是一个很好的概念证明,但你应该仔细检查你的设计是最简单的。