jquery怎么获取下一个具有指定样式(class)的元素呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery怎么获取下一个具有指定样式(class)的元素呢?相关的知识,希望对你有一定的参考价值。

这一段div:
<div id="1500" class="sj"> <span value="15:00">15:00</span></div>
<div class="sj_xian"></div>
<div id="1500" class="sj"> <span value="15:00">15:00</span></div>

$("#1500").next();这样获取的是他下一个兄弟元素,我需要获取下一个具有class="sj" 的元素。应该怎么写?$("#1500").next(“.sj”)?好像不对?

分为以下2种情况: 
1.如果css写成行内样式,可以通过获取style属性的值来判断,示例如下: 
判断id为divid的div元素是否有font-size样式: 

2.如果css写成类样式,可以通过获取class属性的值来判断,示例如下: 
判断id为divid的div元素是否含有类样式divclass: 

描述: 为每个匹配的元素添加指定的样式类名

$('div').addClass('className');//为所有div添加名为className的class1

removeClass 
描述: 移除集合中每个匹配元素上一个,多个或全部样式。

$('div').removeClass('className');//将所有div上名为className的class移除1

toggleClass 
描述: 在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类。

$('div').toggleClass('className');//如果div上有这个class就删除,没有就添加。

参考技术A $("#1500").nextAll(".sj")

试一下。。。。

追问

加上获取第一个就对了。
正确的是:$("#1500").nextAll(".sj").eq(0)

参考技术B 首先,选择器中,id 作为选择,必须唯一。楼主id有两个一样的id,取值的话默认取得是第一个id=1500的,是不规范的写法。
其次,你的需求应该这样写,按照class选择 $(".sj").eq(1) 。$(".sj")取出来是两个,eq方法是选择第几个,从0开始计数。追问

很好,那是写错了的、

追答

只记得有个eq这个方法,具体你测试下。好久不写前端的东西了

参考技术C $("#id" ).nextAll(".class名称")

然后,我想请教几个问题:
1、同一个页面,为啥能有两个id?
2、id为啥用纯数字取名?
3、span里加value是啥意思?追问

抱歉:

1、写法有误
2、ID不能用纯数字吗?(规范我还真的不太清楚)
3、value 是为了获取隐藏值

追答

1、id为纯数字不符合规范,只不过目前浏览器大多都能容忍,但是当出现错误时,你就会用大量时间来找原因,比如:

<input id="x" onblur="fun();" />  
  
<script>  
function fun()  
  
    var str = document.getElementById("x").value   
    alert(str);  
  
</script>

如果你写成下面这样的, 就得不到对应的结果了(我犯过此错误):

<input id="1" onblur="fun();" />  
  
<script>  
function fun()  
  
    var str = document.all.1.value;  
    alert(str);  
  
</script>


2、想获取隐藏值你给span起个class控制就行了啊


代码这么写没人会说你是错的,但是经验告诉我们,规范的写代码,是很有必要的!

追问

span 加个class 获取隐藏值?您能具体说一下吗?谢谢

本回答被提问者和网友采纳

JQuery第三天——大纲待更新

  JQuery的CSS_DOM与样式操作

    样式:

    获取 class 和设置 class : class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方法来完成.

    追加样式: addClass() 移除样式: removeClass() --- 从匹配的元素中删除全部或指定的 class

    切换样式: toggleClass() --- 控制样式上的重复切换.如果类名存在则删除它, 如果类名不存在则添加它.

    判断是否含有某个样式: hasClass() --- 判断元素中是否含有某个 class, 如果有, 则返回 true; 否则返回 false

    CSS_DOM操作 

    获取和设置元素的样式属性: css()

    获取和设置元素透明度: opacity 属性

    获取和设置元素高度, 宽度: height(), width(). 在设置值时, 若只传递数字, 则默认单位是 px. 如需要使用其他单位则需传递一个字符串, 例如       $(“p:first”).height(“2em”);

    获取元素在当前视窗中的相对位移: offset(). 其返回对象包含了两个属性: top, left. 该方法只对可见元素有效

技术分享
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
        <style type="text/css">
            *{ margin:0; padding:0;}
            body {font-size:12px;text-align:center;}
            a { color:#04D; text-decoration:none;}
            a:hover { color:#F50; text-decoration:underline;}
            .SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}
            .SubCategoryBox ul { list-style:none;}
            .SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}
            .showmore { clear:both; text-align:center;padding-top:10px;}
            .showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;}
            
            .showmore a span { padding-left:15px; background:url(img/down.gif) no-repeat 0 0;}
            
            .promoted a { color:#F50;}
        </style>
        <script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
        <script type="text/javascript">
            $(function(){
                
                //测试 jQuery 样式相关的方法. 
                
                //1. hasClass(): 某元素是否有指定的样式
                var bool = $("div:first").hasClass("SubCategoryBox");
                //alert(bool);
                //2. 移除样式
                var bool2 = $("div:first").removeClass("SubCategoryBox");
                alert(bool2);
                //3. 添加样式
                $("div:first").addClass("SubCategoryBox");
                //4. 切换样式: 存在, 则去除; 没有, 则添加. 
                $(".showmore").click(function(){
                    $("div:first").toggleClass("SubCategoryBox");
                    //取消默认行为
                    return false;
                });
                //5. 获取和设置元素透明度: opacity 属性
                var $css = $("div:first").css("opacity");
                alert($css);
                $("div:first").css("opacity",0.5);
                //6. width 和 height
                alert($("div:first").width());
                alert($("div:first").width(300));
                //7. 获取元素在当前视窗中的相对位移: offset(). 
                //其返回对象包含了两个属性: top, left. 该方法只对可见元素有效
                var top = $("div:first").offset().top;
                var left = $("div:first").offset().left;
                alert(top);
                alert(left);
            });
        </script>
    </head>
    <body>
        <div class="SubCategoryBox">
            <ul>
                <li ><a href="#">佳能</a><i>(30440) </i></li>
                <li ><a href="#">索尼</a><i>(27220) </i></li>
                <li ><a href="#">三星</a><i>(20808) </i></li>
                <li ><a href="#">尼康</a><i>(17821) </i></li>
                <li ><a href="#">松下</a><i>(12289) </i></li>
                <li ><a href="#">卡西欧</a><i>(8242) </i></li>
                <li ><a href="#">富士</a><i>(14894) </i></li>
                <li ><a href="#">柯达</a><i>(9520) </i></li>
                <li ><a href="#">宾得</a><i>(2195) </i></li>
                <li ><a href="#">理光</a><i>(4114) </i></li>
                <li ><a href="#">奥林巴斯</a><i>(12205) </i></li>
                <li ><a href="#">明基</a><i>(1466) </i></li>
                <li ><a href="#">爱国者</a><i>(3091) </i></li>
                <li ><a href="#">其它品牌相机</a><i>(7275) </i></li>
            </ul>
            <div class="showmore">
                <a href="more.html"><span>显示全部品牌</span></a>
            </div>
        </div>
    </body>
</html>
View Code

 

以上是关于jquery怎么获取下一个具有指定样式(class)的元素呢?的主要内容,如果未能解决你的问题,请参考以下文章

jquery 选中文本框 jquery 文本框样式 jquery 改变样式

JQuery第三天——大纲待更新

jquery获取指定元素下的子元素

jquery中怎么获得当前元素的索引值

jquery中怎样根据父级找元素

jquery 如何动态添加、删除class样式