0
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo</title>
</head>
<body>
<ul>
<li>item 1</li>
<li class="specia">item 2</li>
<li>item 3</li>
</ul>
</body>
</html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$( 'li' ).html(function( index, oldHtml ) {
  return oldHtml + '!!!'
});
</script>

问题:

对于这一行:function( index, oldHtml ),我知道oldHtml表示 的 html 值li,但index这里的含义是什么?在我们没有使用的函数内部index,我检查了这里的文档:http: //api.jquery.com/html/#html-functionindex--oldhtml,但仍然没有得到它。

4

3 回答 3

1

在这种情况下index,表示 - 元素的位置li。猜猜你有一个ul包含五个li元素,所以$('li')...将匹配所有五个元素。告诉您选择了index哪个元素。一个例子:假设你将有li另一种颜色的第二个元素,所以你可以这样做:

$('li').html(function(index, oldHtml) {
    if (index == 2) {
        jQuery(this).css('color', 'red');
    }
});

希望这可以帮助。

于 2013-06-19T08:25:55.023 回答
0

似乎一个简单的例子会表明你想要它在做什么:

http://jsfiddle.net/dqjg3/生成:

#0 item 1!!!
#1 item 2!!!
#2 item 3!!!

您所指的重载隐式循环遍历选定的元素,但公平地说,API 似乎并没有很清楚地解释这一点。

于 2013-06-19T08:35:18.243 回答
0

index 基本上用于获取兄弟编号。假设有 4

  • 标签。

    <ul>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
    <li>Fourth</li>
    </ul>
    

    现在您想在不遍历的情况下更改第三个节点。在这种情况下,您将使用索引。

    $('li').html(function(index, oldHtml) {
        if (index == 3) {
            $(this).text("modified third");
        }
    });
    
  • 于 2013-06-19T08:59:15.967 回答