微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 如果this = first>和’xyz’类那么运行函数

我有一个< ul>共有6件商品.每个项目都有一个规划,景观或环境类.这些项目是页面上jQuery Cycle幻灯片的一部分.如果正在显示的列表项是具有特定类的第一个项目,我打算做的是在页面显示一些内容.

如下所示,我有两个列表项目,其中包含“计划”类.如何检测正在显示的列表项是否是第一个具有“计划”类的?

循环给了我一个很小的功能来帮助我,我只是不确定如何在我的帮助函数中编写if()来触发我想在页面显示的项目.

任何帮助是极大的赞赏!

**编辑**这是jsfiddlejsfiddle.net/73y2R/1

这是html:

<ul>
    <li class="planning">
        <img src="images/pl_slide1.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
    <li class="planning">
        <img src="images/pl_slide1.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
    <li class="landscape">
        <img src="images/la_slide2.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
    <li class="landscape">
        <img src="images/la_slide2.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
    <li class="environmental">
        <img src="images/en_slide1.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
    <li class="environmental">
        <img src="images/en_slide1.jpg">
      <h2>Headline</h2>
      <p>Lorem Ipsum</p>
    </li>
  </ul>

和助手功能

function onBefore() {
var theid = $(this).attr('class');
$('#services h4').removeClass('recolor');
$('#slideShow ul li').removeClass('showTitle');
if($(this).hasClass('planning')){
    $('#arrow').animate({'paddingLeft':'60px'});
    $('#' + theid).addClass('recolor');
} else if ($(this).hasClass('landscape')){
    $('#arrow').animate({'paddingLeft':'330px'});
    $('#' + theid).addClass('recolor'); 
} else if ($(this).hasClass('environmental')){
    $('#arrow').animate({'paddingLeft':'598px'});
    $('#' + theid).addClass('recolor'); 
}
}

解决方法

如果($(本).是( “li.planning:第一”)){
     //这是第一个……
    }
     

我不确定为什么第一个版本不起作用(可能是jQuery扩展伪类与方法的问题???).

使用$(this).is($(“li.planning:first”))而不是$(this).is(“li.planning:first”)(我们将jQuery对象传递给is方法而不是字符串选择器

试试这个:

if($(this).is($("li.planning:first"))){
 //This is the first li...
}

检查这个jsfiddlehttp://jsfiddle.net/73y2R/2/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐