为了账号安全,请及时绑定邮箱和手机立即绑定

两者之间有何区别?

1、 $('.left div').addClass('newClass')

2、$("div").addClass(function(index,className) {

            //找到类名中包含了imooc的元素
            if(-1 !== className.indexOf('imooc')){
                //this指向匹配元素集合中的当前元素
                $(this).addClass('imoocClass')
            }
        });

1和2之间有什么区别,不都是添加一个新的样式吗?那为什么要用2这个复杂的呢


正在回答

1 回答

举个例子你就懂了。有这样一个html

<ul>
      <li>Hello</li>
      <li>Hello</li>
      <li>Hello</li>
</ul>

你想给每个li加入classname。而且class不同,但是又有与index相关联的部分

$('ul li').addClass(function(index) {
  return 'item-' + index;
});

用上面的代码给li加上classname,你可以尝试看看结果是什么样子的.

详细的你可以查看jQuery的API对于这个的描述:

.addClass()

1 回复 有任何疑惑可以回复我~
#1

唯尔半截湘妃 提问者

是不是用第一种,只能给3个l,i加上同一个class,而利用函数,就能巧妙的为3个li加上不同的class,对吗
2016-08-24 回复 有任何疑惑可以回复我~
#2

柒渡 回复 唯尔半截湘妃 提问者

我看了这个例子下明白,其实index就是表示元素的位置,后面那个'item-'+index就是利用了每个li位置不同,添加不用class,比如第一个就是item-0,第二个就是item-1,第三个就是item-2,明白了吧。这个index就是用用来表示前面$('ul li')选出多个对象是区别位置的。
2016-09-03 回复 有任何疑惑可以回复我~
#3

唯尔半截湘妃 提问者

非常感谢!
2016-09-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

两者之间有何区别?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信