码迷,mamicode.com
首页 > Web开发 > 详细

jquery中html、text、val回调函数

时间:2017-05-20 20:03:18      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:meta   div   执行   对象   head   教程   script   元素   接下来   

先扫盲:

  摘自菜鸟教程:jQuery 方法:text()、html() 以及 val()拥有回调函数。

      回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串

再上代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <ul>
        <li>demo</li>
        <li>demo</li>
        <li>demo</li>
        <li>demo</li>
    </ul>
</body>
<script src="jquery-1.12.4.min.js"></script>
<script>
    $("li").click(function () {
        $(this).html(function(i,originTex){
            return (originTex+i);
        })
    })
</script>
</html>

很奇怪,当点击元素"li"时总是在旧文本后追加下标0,与预期不一样。

再看接下来代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <ul>
        <li>demo</li>
        <li>demo</li>
        <li>demo</li>
        <li>demo</li>
    </ul>
</body>
<script src="jquery-1.12.4.min.js"></script>
<script>
//    $("li").click(function () {
//        $(this).html(function(i,originTex){
//            return (originTex+i);
//        })
//    })
    $(document).click(function(){
        $("li").html(function(i,originTxt){
            $(this).html(originTxt+i);
        })
    })
</script>
</html>

改变事件源,期待的结果出现了。

【代码解析】

                第一种情况触发事件的是当前触发点击事件的li元素,$(this)指向它,只有一个元素,所以其下标一直是0;

                第二种情况仅仅是通过document这个对象触发事件,进而执行的是一个典型的遍历赋值动作,这个不多做解释。

 

jquery中html、text、val回调函数

标签:meta   div   执行   对象   head   教程   script   元素   接下来   

原文地址:http://www.cnblogs.com/hcxy/p/6882916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!