加载中...

index()


概述    index()

返回值:Integer

描述:从匹配的元素中搜索给定元素的索引值,从0开始计数。

  • V : 1.4.index()

    • 这个方法不接受任何参数。
  • V : 1.4.index( selector )

    • selector
      类型: Selector
      一个选择器,代表一个jQuery对象,将会从这个对象中查找元素。
  • V : 1.0.index( element )

    • element
      类型: Element, jQuery
      将要用于查找的DOM元素,或者jQuery对象中的第一个元素。

Return Values(返回值)

如果不传递任何参数给 .index() 方法,则返回值就是jQuery对象中第一个元素相对于它同辈元素的位置。

如果在一组元素上调用 .index() ,并且参数是一个DOM元素或jQuery对象, .index() 返回值就是传入的元素相对于原先集合的位置。

如果参数是一个选择器, .index() 返回值就是原先元素相对于选择器匹配元素的位置。如果找不到匹配的元素,则 .index() 返回 -1.

Detail(细节)

.get() 接受一个索引值参数并返回对应的DOM节点, .index() 与其正好相反,接受一个DOM节点然后返回其索引值。假设页面上有个简单的无序列表:

  1. <ul>
  2. <li id="foo">foo</li>
  3. <li id="bar">bar</li>
  4. <li id="baz">baz</li>
  5. </ul>

如果我们获取了三个li中的一个元素(例如通过DOM函数,或者事件处理函数中的上下文this), .index() 能够在匹配的元素中找到这个列表项:

  1. var listItem = document.getElementById('bar');
  2. alert('Index: ' + $('li').index(listItem));
  3. We get back the zero-based position of the list item:

Index: 1

类似的,如果我们获得一个jQuery对象,该对象是三个列表项之一, .index() 也能用于搜索那个列表项:

  1. var listItem = $('#bar');
  2. alert('Index: ' + $('li').index(listItem));

我们就能得到这个li所在的位置,从0开始计数的:

Index: 1

注意,如果作为 .index() 参数使用的jQuery集合含有多个元素,则只会使用第一个:

  1. var listItems = $('li:gt(0)');
  2. alert('Index: ' + $('li').index(listItems));

我们得到了匹配的li集合中,第一个元素的位置,从0开始计数。

Index: 1

如果我们将一个字符串传递给 .index() 方法,这个字符串会被解析成jQuery选择器,将会定位到调用 .index() 的jQuery对象中第一个元素,相对于由这个选择器匹配到的元素集合中的位置:

  1. var listItem = $('#bar');
  2. alert('Index: ' + listItem.index('li'));

我们就能得到这个列表项所在的位置,从0开始计数的:

Index: 1

如果我们忽略参数, .index() 将返回集合中第一个元素相对于其同辈元素的位置:

  1. alert('Index: ' + $('#bar').index());

又一次,我们得到了这个li从0开始数的位置。

Index: 1

示例

实例

点击后,返回那个div在页面上的索引值(从0开始计数)。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. div { background:yellow; margin:5px; }
  6. span { color:red; }
  7. </style>
  8. <script src="http://code.jquery.com/jquery-latest.js"></script>
  9. </head>
  10. <body>
  11. <span>Click a div!</span>
  12. <div>First div</div>
  13. <div>Second div</div>
  14. <div>Third div</div>
  15. <script>
  16. $("div").click(function () {
  17. // this is the dom element clicked
  18. var index = $("div").index(this);
  19. $("span").text("That was div index #" + index);
  20. });
  21. </script>
  22. </body>
  23. </html>

运行一下

实例

返回ID为bar的元素的索引值。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>div { font-weight: bold; color: #090; }</style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. </head>
  7. <body>
  8. <ul>
  9. <li id="foo">foo</li>
  10. <li id="bar">bar</li>
  11. <li id="baz">baz</li>
  12. </ul>
  13. <div></div>
  14. <script>var listItem = $('#bar');
  15. $('div').html( 'Index: ' + $('li').index(listItem) );</script>
  16. </body>
  17. </html>

运行一下

实例

返回jQuery集合中第一项的索引值。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>div { font-weight: bold; color: #090; }</style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. </head>
  7. <body>
  8. <ul>
  9. <li id="foo">foo</li>
  10. <li id="bar">bar</li>
  11. <li id="baz">baz</li>
  12. </ul>
  13. <div></div>
  14. <script>var listItems = $('li:gt(0)');
  15. $('div').html( 'Index: ' + $('li').index(listItems) );
  16. </script>
  17. </body>
  18. </html>

运行一下

实例

返回ID为bar的元素相对于所有 <li> 元素的索引值。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>div { font-weight: bold; color: #090; }</style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. </head>
  7. <body>
  8. <ul>
  9. <li id="foo">foo</li>
  10. <li id="bar">bar</li>
  11. <li id="baz">baz</li>
  12. </ul>
  13. <div></div>
  14. <script>$('div').html('Index: ' + $('#bar').index('li') );</script>
  15. </body>
  16. </html>

运行一下

实例

返回ID为bar的元素相对于同辈的索引值。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>div { font-weight: bold; color: #090; }</style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. </head>
  7. <body>
  8. <ul>
  9. <li id="foo">foo</li>
  10. <li id="bar">bar</li>
  11. <li id="baz">baz</li>
  12. </ul>
  13. <div></div>
  14. <script>var barIndex = $('#bar').index();
  15. $('div').html( 'Index: ' + barIndex );</script>
  16. </body>
  17. </html>

运行一下

实例

由于没有元素的ID为foobar,所以返回 -1。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>div { font-weight: bold; color: #090; }</style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. </head>
  7. <body>
  8. <ul>
  9. <li id="foo">foo</li>
  10. <li id="bar">bar</li>
  11. <li id="baz">baz</li>
  12. </ul>
  13. <div></div>
  14. <script>var foobar = $("li").index( $('#foobar') );
  15. $('div').html('Index: ' + foobar);</script>
  16. </body>
  17. </html>
运行一下


还没有评论.