jquery函数中的索引是啥意思
Posted
技术标签:
【中文标题】jquery函数中的索引是啥意思【英文标题】:What does index in jquery functions meansjquery函数中的索引是什么意思 【发布时间】:2012-09-09 12:18:34 【问题描述】:我是 jQuery 入门的,如果质量不好请见谅。
我想知道index
在函数中的含义以及它到底指的是什么。以前我认为它指的是索引号,如 0,1,2,3 等,但是当我通过 1,2,3 代替索引时,我的代码停止工作。我检查了它的类型,它显示了number
数据类型。
现在让我来看看我到底做错了什么以及 jQuery 中的索引和元素的概念,因为大多数地方我都发现了这样的东西--
function(e)
我的工作代码--
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Example</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function()
$( 'li' ).html(function( index, oldHtml )
//alert(typeof($(this).index()));
return oldHtml + '!!!'
);
);
</script>
</head>
<body>
<ul>
<li>This is List item 1</li>
<li>This is List item 2</li>
<li>This is List item 3</li>
<li>This is List item 4</li>
<li>This is List item 5</li>
</ul>
</body>
</html>
我的尝试--
$( 'li' ).html(function( 3, oldHtml ) ....
$( 'li' ).html(function( "3", oldHtml ) ....
$( 'li' ).eq(3).html(function( "3", oldHtml ) ......
【问题讨论】:
【参考方案1】:index
参数表示匹配集合中元素的索引。您不应该将值传递给它。它是一个传递给匿名函数的参数,您可以在内部使用它来准确了解在哪个元素上调用该匿名函数(如果需要):
$( 'li' ).html(function( index, oldHtml )
return 'new html ' + index;
);
索引是从零开始的,所以结果是:
<li>new html 0</li>
<li>new html 1</li>
<li>new html 2</li>
<li>new html 3</li>
<li>new html 4</li>
【讨论】:
感谢您提供非常简单明了的解释。我喜欢这个地方..真的是程序员的天堂......只是一点帮助..你可以为初学者提供一个参考,因为 jQuery 文档似乎有点大:) 我建议您阅读 jQuery 网站本身的入门教程。一旦您习惯了基本概念,就可以使用 API 参考。【参考方案2】:index 表示 jquery 选择的某个元素的位置的数字..
例如选择的元素是$('#haha')
<ul id='haha'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
所以第一个 li
是索引 0,然后是 1,依此类推
【讨论】:
【参考方案3】:在根据集合查看数据时,您会使用 index()。例如
<ul>
<li id="foo">foo</li>
<li id="bar">bar</li>
<li id="baz">baz</li>
</ul>
var listItem = document.getElementById('bar');
alert('Index: ' + $('li').index(listItem));
会给你在 li 列表范围内的 bar 项的索引
见 jquery documentation
【讨论】:
【参考方案4】:描述:从匹配的元素中搜索给定的元素。
索引是元素的顺序,它会告诉你这个元素有哪个索引。第一个将有索引 0 等等,在许多编程语言中很常见,jQuery 为您提供了这个工具。
【讨论】:
【参考方案5】:jQuery 创建一个返回元素的数组,一个由index 引用的元素的collection。如果您返回 typeof
,它会在逻辑上返回 number,因为它是一个数字。
jsBin demo
$( 'li' ).html(function( index, html )
if(index===2) // zero based, so it will colour the 3rd element!
$(this).css(color:'red');
return 'jQuery indexes me inside an array as n:'+ index+
'<br> My HTML: '+ html + '!!!';
);
【讨论】:
以上是关于jquery函数中的索引是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
在 Javascript/jQuery 中,(e) 是啥意思?
这个 Vigenere 密码中的“字符串索引超出范围”是啥意思?