从jq api手册摘过来的内容,index这个方法在写 tab silder 之类的组件还是比较有用的说。
js没有传统的函数重载的概念,但是根据传入参数的不同,js的函数可以完成不同的功能,也可说是重载的思想吧
如果不给 $(selector).index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置。
如果参数是一组DOM元素或者jQuery对象,$(selector).index( doms| $(selector) )那么返回值就是传递的元素相对于原先集合的位置。
如果参数是一个选择器,$(selector).index(selector) 那么返回值就是原先元素相对于选择器匹配元素中的位置。如果找不到匹配的元素,则返回-1。
<ul> <li id="foo">foo</li> <li id="bar">bar</li> <li id="baz">baz</li> </ul>
$(‘li‘).index(document.getElementById(‘bar‘)); //1,传递一个DOM对象,返回这个对象在原先集合中的索引位置 $(‘li‘).index($(‘#bar‘)); //1,传递一个jQuery对象 $(‘li‘).index($(‘li:gt(0)‘)); //1,传递一组jQuery对象,返回这个对象中第一个元素在原先集合中的索引位置 $(‘#bar‘).index(‘li‘); //1,传递一个选择器,返回#bar在所有li中的做引位置 $(‘#bar‘).index(); //1,不传递参数,返回这个元素在同辈中的索引位置。