jQuery基本操作

jQuery操作DOM元素

使用attr()方法控制元素的属性

attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,attr(属性名,属性值)格式则是设置元素属性名的值。
例如,使用attr(属性名)的格式获取页面中<a>元素的“href”属性值,并将该值的内容显示在<span>元素中,如下图所示:

在浏览器中显示的效果:

<h3>attr()方法获取元素属性</h3>
<a href="http://127.0.0.1" id="a1">点我就走</a>
<div>我要去的地方是:<span id="tip"></span></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    var $url=$("#a1").attr("href");
    $("#tip").html($url);
</script>

从图中可以看出,通过attr()方法可以方便地获取元素中指定属性名称的内容,并将获取的内容通过html()方法显示在页面中。


Alt text
Alt text

操作元素的内容

使用html()text()方法操作元素的内容,当两个方法的参数为空时,表示获取该元素的内容,而如果方法中包含参数,则表示将参数值设置为元素内容。
例如,分别使用html()text()方法获取一个元素的内容,并将获取的内容显示在不同的<div>元素中,如下图所示:

<h3>html()和text()方法获取元素内容</h3>
<div id="content"><i>我的身体有点歪哦</i></div>
<div id="html"></div>
<div id="text"></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    var $html=$("#content").html();
    var $text=$("#content").text();
    $("#html").html($html);
    $("#text").text($text);
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,html()方法可以获取元素的HTML内容,因此,原文中的格式代码也被一起获取,而text()方法只是获取元素中的文本内容,并不包含HTML格式代码,所以它显示的内容并没有变“歪”。

操作元素的样式

通过addClass()css()方法可以方便地操作元素中的样式,前者括号中的参数为增加元素的样式名称,后者直接将样式的属性内容写在括号中。
例如,使用addClass()方法,改变<div>元素的背景色和文字颜色,如下图所示:

<style type="text/css">
    div
    {
        padding: 8px;
        width: 180px;
    }
    .blue
    {
        background-color: blue;
    }
    .white
    {
        color: white;
    }

    </style>
</head>
<body>
    <h3>addClass()方法设置元素样式</h3>
    <div id="content">我穿了一件蓝色外衣</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $("#content").addClass("blue white");
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,通过addClass()方法为<div>元素增加了两个样式名称,从而改变了<div>元素的背景和文字颜色,增加多个样式名称时,要用空格隔开。
css()方法和addClass方法用法类似,只是需要去设置具体样式了。具体用法同学们可以在下面的任务中自己尝试。

$("#content").css({"background-color":"red","color":"white"});

移除属性和样式

使用removeAttr(name)removeClass(class)分别可以实现移除元素的属性和样式的功能,前者方法中参数表示移除属性名,后者方法中参数则表示移除的样式名
例如,使用removeAttr()方法移除<a>元素中的“href”属性,如下图所示:

<h3>attr()方法获取元素属性</h3>
<a href="http://127.0.0.1" id="a1">点我就走</a>
<div>我要去的地方是:<span id="tip"></span></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    $("a").removeAttr("href")
    var $url=$("#a1").attr("href");
    $("#tip").html($url);
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用removeAttr()方法移除元素的“href”属性后,再次显示元素的“href”属性值时,则为空值,<a>元素中的文字也丢失可点击的效果。

使用append()方法向元素内追加内容

append(content)方法的功能是向指定的元素中追加内容,被追加的content参数,可以是字符、HTML元素标记,还可以是一个返回字符串内容的函数。
例如,在页面的<body>元素中追加一个具有“id”、“title”属性和显示内容的<div>元素,如下图所示:

<h3>append()方法追加内容</h3>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    var P1="<p>woshishui</p>"
    $("body").append(P1);
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,由于使用append()方法在<body>元素中追加了一些HTML 元素标记,因此追加后,这些元素标记直接生成对应的元素和属性显示在页面中。

使用appendTo()方法向被选元素内插入内容

appendTo()方法也可以向指定的元素内插入内容,它的使用格式是:$(content).appendTo(selector)
参数content表示需要插入的内容,参数selector表示被选的元素,即把content内容插入selector元素内,默认是在尾部。
例如,使用appendTo()方法,将<div>外的<span>元素插入<div>内,如下图所示:

<h3>appendTo()方法插入内容</h3>
<div>
    <span class="green">小乌龟</span>
</div>
<span class="red">小兔子</span>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    $(".red").appendTo("div");
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用appendTo()方法将类别名为“red”<span>元素插入到<div>元素的尾部,相当于追加的效果。

使用before()after()在元素前后插入内容

使用before()after()方法可以在元素的前后插入内容,它们分别表示在整个元素的前面和后面插入指定的元素或内容,调用格式分别为:
$(selector).before(content)$(selector).after(content)
其中参数content表示插入的内容,该内容可以是元素或HTML字符串
例如,调用before()方法在一个<span>元素插入另一个<span>元素,如下图所示:

<h3>before()方法在元素之前插入内容</h3>
<span class="green">我们交个朋友吧!</span>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    var $html = "<span class='red'>土豪,</span>"
    $(".green").before($html);
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用before()方法将HTML格式的内容插入到原有<span>元素内容之前,而并不仅是它的内部文本。

使用clone()方法复制元素

调用clone()方法可以生成一个被选元素的副本,即复制了一个被选元素,包含它的节点、文本和属性,它的调用格式为:$(selector).clone()
其中参数selector可以是一个元素或HTML内容。
例如,使用clone()方法复制页面中的一个<span>元素,并将复制后的元素追加到页面的后面,如下图所示:

<h3>使用clone()方法复制元素</h3>
<span class="red" title="hi">我是美猴王</span>

<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$("body").append($(".red").clone())
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用clone()方法复制元素时,不仅复制了该元素的文本和节点,还将它的“title”属性也一起复制过来了。

replaceWith()和replaceAll()方法

都可以用于替换元素或元素中的内容,但它们调用时,内容和被替换元素所在的位置不同,分别为如下所示:
$(selector).replaceWith(content)$(content).replaceAll(selector)
参数selector为被替换的元素,content为替换的内容。
例如,调用replaceWith()方法将页面中<span>元素替换成一段HTML字符串,如下图所示:

<h3>使用clone()方法复制元素</h3>
<span class="green" title="hi">我是屌丝</span>

<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
var $html="<span class='red' title='hi'>我是土豪</span>"
$(".green").replaceWith($html);
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用replaceWith()方法替换类别名为“green”的<span>元素,替换之后,旧元素完全由新替换的元素所取代。

使用wrap()wrapInner()方法包裹元素和内容

wrap()wrapInner()方法都可以进行元素的包裹,但前者用于包裹元素本身,后者则用于包裹元素中的内容,它们的调用格式分别为:
$(selector).wrap(wrapper)$(selector).wrapInner(wrapper)
参数selector为被包裹的元素,wrapper参数为包裹元素的格式。
例如,调用wrap()方法,将<span><div>元素包裹起来,如下图所示:

<h3>用wrap()方法包裹元素</h3>
<span class="red" title="hi">我被绿丝带包围了</span>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(".red").wrap("<div></div>");
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,红色区域的<span>元素被蓝色边框的<div>元素通过wrap()方法包裹起来。

使用each()方法遍历元素

使用each()方法可以遍历指定的元素集合,在遍历时,通过回调函数返回遍历元素的序列号,它的调用格式为:$(selector).each(function(index))
参数function为遍历时的回调函数,index为遍历元素的序列号,它从0开始。
例如,遍历页面中的<span>元素,当元素的序列号为2时,添加名为“focus”的样式,如下图所示:

<h3>使用each()方法遍历元素</h3>
<span class="green">香蕉</span>
<span class="green">桃子</span>
<span class="green">葡萄</span>
<span class="green">荔枝</span>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$("span").each(function(index) {
    if (index==2) {
$(this).addClass("focus");
    }
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,在使用each()方法遍历<span>元素时,回调函数中的“index”参数为元素的序列号,它从0开始,当为2时,表示第3个<span>元素增加样式。

使用remove()empty()方法删除元素

remove()方法删除所选元素本身和子元素,该方法可以通过添加过滤参数指定需要删除的某些元素,而empty()方法则只删除所选元素的子元素。
例如,调用remove()方法删除<span>元素中类别名为“red”的,如下图所示:

<h3>使用each()方法遍历元素</h3>
<span class="green">香蕉</span>
<span class="red">桃子</span>
<span class="green">葡萄</span>
<span class="red">荔枝</span>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$("span").remove(".red");
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用remove(".red")方法只是把<span>元素中类别名为“red”的这部分元素给删除了。

jQuery事件与应用

页面加载时触发ready()事件

ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行。此外,下列写法是相等的:$(document).ready(function(){})等价于$(function(){});
例如,当触发页面的ready()事件时,在<div>元素中显示一句话。如下图所示:

<h3>页面载入时触发ready()事件</h3>
<div id="tip"></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("#tip").html("我被加载了!");
})

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当页面的DOM框架完成加载后,便触发ready()事件,在该事件中,通过id号为“tip”的元素,调用html()方法在页面中显示一段字符。

使用bind()方法绑定元素的事件

bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名,绑定的事件名称,事件中执行的函数内容就可以,它的绑定格式如下:$(selector).bind(event,[data] function)
参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。
例如,绑定按钮的单击事件,单击按钮时,该按钮变为不可用。如下图所示:

<h3>bind()方法绑定单个事件</h3>
<input id="btntest" type="button" value="点击就不可用了"/>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("#btntest").bind("click",function(){
        $(this).attr("disabled","true");
    })
})
</script>

在浏览器中显示的效果:


Alt text
Alt text

可以看出,由于使用bind()方法,绑定了按钮的单击事件,在该事件中将按钮本身的“disabled”属性值设为“true”,表示不可用,当点击时触该事件。

使用hover()方法切换事件

hover()方法的功能是当鼠标移到所选元素上时,执行方法中的第一个函数,鼠标移出时,执行方法中的第二个函数,实现事件的切实效果,调用格式如下:$(selector).hover(over,out);
over参数为移到所选元素上触发的函数,out参数为移出元素时触发的函数。
例如,当鼠标移到<div>元素上时,元素中的字体变成金黄色,如下图所示:

<body>
<h3>hover()方法切换事件</h3>
<div>别走!你就是土豪</div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("div").hover(
        function(){
            $(this).addClass("orange")
    },
        function(){
            $(this).removeClass("orange")
    }
    );
})
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,使用hover()方法执行两个函数,当鼠标移在元素上时调用addClass()方法增加一个样式,移出时,调用removeClass()方法移除该样式。

使用toggle()方法绑定多个函数

toggle()方法可以在元素的click事件中绑定两个或两个以上的函数,同时,它还可以实现元素的隐藏与显示的切换,绑定多个函数的调用格式如下:$(selector).toggle(fun1(),fun2(),funN(),...)
其中,fun1fun2就是多个函数的名称
例如,使用toggle()方法,当每次点击<div>元素时,显示不同内容,如下图所示:

<h3>toggle()方法绑定多个函数</h3>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("div").toggle(
        function(){
            $(this).html("苹果");
        }),
        function(){
            $(this).html("荔枝"),
        }
        function(){
            $(this).html("香蕉"),
        }

})
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,每次点击<div>元素时,都依次执行toggle()方法绑定的函数,当执行到最后一个函数时,再次点击将又返回执行第一个函数。
注意:toggle()方法支持目前主流稳定的jQuery版本1.8.2在1.9.0之后的版本是不支持的。

使用unbind()方法移除元素绑定的事件

unbind()方法可以移除元素已绑定的事件,它的调用格式如下:$(selector).unbind(event,fun)
其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。
例如,点击按钮时,使用unbind()方法移除<div>元素中已绑定的“dblclick”事件,如下图所示:

 <h3>unbind()移除绑定的事件</h3>
    <input type="button" value="移除事件" id="btntest">
    <div>土豪,咱们交个朋友吧</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $("div").bind("click"(function() {
            $(this).removeClass('backcolor').addClass('color');
        }).bind("dblclick"(function() {
            $(this).removeClass('color').addClass('backcolor');
        })

        $("#btntest").bind("click",function(){
            $("div").unbind("dblclick");
            $(this).attr("disabled","true");
        });
    });
    </script>

在浏览器中显示的效果:

Alt text
Alt text

从图中可以看出,当使用unbind()方法移除已绑定的“dblclick”事件时,再次双击<div>元素,样式和文字都没有任何变化,表明移除事件成功。
如果没有规定参数,unbind() 方法会删除指定元素的所有事件处理程序。

使用one()方法绑定元素的一次性事件

one()方法可以绑定元素任何有效的事件,但这种方法绑定的事件只会触发一次,它的调用格式如下:$(selector).one(event,[data],fun)
参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。
例如,使用one方法绑定<div>元素的单击事件,在事件执行的函数中,累计执行的次数,并将该次数显示在页面中,如下图所示:

<h3>one()方法执行一次绑定事件</h3>
    <div>我被点击了(0)次</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function(){
        var intI=0;
        $("div").one("click",function() {
            intI++;
            $(this).html("我被点击了("+ intI +")次"); 
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,由于使用了one()方法绑定<div>元素的单击事件,因为事件函数只能执行一次,执行完成后,无论如何单击,都不再触发。

调用trigger()方法手动触发指定的事件

trigger()方法可以直接手动触发元素指定的事件,这些事件可以是元素自带事件,也可以是自定义的事件,总之,该事件必须能执行,它的调用格式为:$(selector).trigger(event)
其中event参数为需要手动触发的事件名称。
例如,当页面加载时,手动触发文本输入框的“select”事件,使文本框的默认值处于全部被选中的状态,如下图所示:

<h3>trigger()手动触发事件</h3>
<input id="txtest" type="text" value="请输入您的姓名">
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("input").trigger("select");
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,由于文本输入框调用trigger()方法触发了“select”事件,因此,当页面加载完成后,文本框中的默认值处于全部被选中的状态。

文本框的focusblur事件

focus事件在元素获取焦点时触发,如点击文本框时,触发该事件;而blur事件则在元素丢失焦点时触发,如点击除文本框的任何元素,都会触发该事件。
例如,在触发文本框的“focus”事件时,<div>元素显示提示内容,如下图所示:

<h3>文字框的focus和blur事件</h3>
    <input id="txtest" type="text" value="">
    <div></div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $("input").bind("focus",function(){
            $("div").html("请输入您的姓名!")
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击文本框时,触发文本框的“focus”事件,在该事件中,页面中的<div>元素显示提示信息。

下拉列表框的change事件

当一个元素的值发生变化时,将会触发change事件,例如在选择下拉列表框中的选项时,就会触change事件。
例如,当在页面选择下拉列表框中的选项时,将在<div>元素中显示所选择的选项内容,如下图所示:

<h3>下拉列表的change事件</h3>
<select name="" id="select">
    <option value="葡萄">葡萄</option>
    <option value="苹果">苹果</option>
    <option value="荔枝">荔枝</option>
    <option value="香蕉">香蕉</option>
</select>
<div></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function(){
    $("select").bind("change",function(){
        $("div").html("你选择的是:"+ $(this).val());
    })
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,由于使用bind()方法绑定了下拉列表的“change”事件,因此,当选择列表中的选项时,在<div>元素中显示所选择的选项内容。

调用live()方法绑定元素的事件

bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:$(selector).live(event,[data],fun)
参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。
例如,使用live()方法绑定,页面中按钮元素的单击事件,而这个按钮是通过追加的方式添加至页面的。如下图所示:

    <h3>live()方法绑定单个事件</h3>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("body").append("<input id=’btntest‘ value=’点击就不可用‘ type='button'>");
        $("#btntest").live("click", function() {
            $(this).attr("disabled", "true");
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,虽然按钮元素是在事件绑定声明之后,并且是通过追加的方式添加至页面的,但由于使用的是live()方法绑定元素的事件,因此,仍然生效。
注意:从 jQuery 1.7 开始,不再建议使用 .live() 方法。****1.9不支持.live(),本节代码编辑器里的js引用版本改为了1.8。

jQuery动画

调用show()hide()方法显示和隐藏元素

show()和hide()方法用于显示或隐藏页面中的元素,它的调用格式分别为:$(selector).hide(speed,[callback])$(selector).show(speed,[callback])
参数speed设置隐藏或显示时的速度值,可为“slow”“fast”毫秒数值,可选项参数callback为隐藏或显示动作执行完成后调用的函数名。
例如,在页面中,通过点击“显示”和“隐藏”两个按钮来控制图片元素的显示或隐藏状态,如下图所示:

<h3>show()和hide方法显示和隐藏元素</h3>
    <input type="button" id="btnShow" value="显示">
    <img src="cancel.png" alt="">
    <input type="button" value="隐藏" id="btnHide">
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
            $("img").show();
        });
        $("#btnHide").bind("click",function(){
            $("img").hide();
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,点击“显示”按钮时,可以将图片元素显示在页面中,点击“隐藏”按钮时,则将图片元素隐藏起来。

动画效果的show()hide()方法

在上一小节中,调用show()hide()方法仅是实现的元素的显示和隐藏功能,如果在这些方法中增加“speed”参数可以实现动画效果的显示与隐藏,同时,如果添加了方法的回调函数,它将在显示或隐藏执行成功后被调用。
例如,以动画的方式显示或隐藏页面中的图片,同时,当显示或隐藏完成时,对应的按钮状态将变为不可用,如下图所示:

<h3>show()和hide()方法动画方式显示和隐藏元素</h3>
    <input type="button" id="btnShow" value="显示">
    <img src="cancel.png" alt="">
    <input type="button" value="隐藏" id="btnHide">
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
            $("img").show(3000,function(){
                $("#btnShow").attr("disabled",true);
                $("#btnHide").attr("disabled",false);
            });
        });
        $("#btnHide").bind("click",function(){
            $("img").hide(3000,function(){
                $("#btnShow").attr("disabled",false);
                $("#btnHide").attr("disabled",true);
            });
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当以动画方式显示或隐藏图片时,图片在显示或隐藏过程中,则以动画效果按“speed”参数设置数字执行,完成后,调用回调函数中的代码。

调用toggle()方法实现动画切换效果

第一节我们学过实现元素的显示与隐藏需要使用hide()show(),那么有没有更简便的方法来实现同样的动画效果呢?
调用toggle()方法就可以很容易做到,即如果元素处于显示状态,调用该方法则隐藏该元素,反之,则显示该元素,它的调用格式是:$(selector).toggle(speed,[callback])
其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。
例如,调用toggle()方法以动画的效果显示和隐藏图片元素,如下图所示:

<h3>show()和hide()方法动画方式显示和隐藏元素</h3>
<img src="cancel.png" alt="">
<input type="button" value="隐藏" id="btnAct">
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    $("btnAct").bind("click", function() {
        var $this = $(this);
        $("img").toggle(3000, function() {
            $this.val() == "隐藏" ? $this.val("显示") : $this.val("隐藏");
        });
    });
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当按钮显示内容为“隐藏”时,点击该按钮,将调用toggle()方法以动画的方式隐藏图片元素,隐藏成功后,按钮显示的内容变为“显示”。

使用slideUp()slideDown()方法的滑动效果

可以使用slideUp()slideDown()方法在页面中滑动元素,前者用于向上滑动元素,后者用于向下滑动元素,它们的调用方法分别为:$(selector).slideUp(speed,[callback])$(selector).slideDown(speed,[callback])
其中speed参数为滑动时的速度,单位是毫秒,可选项参数callback为滑动成功后执行的回调函数名。
要注意的是:slideDown()仅适用于被隐藏的元素;slideup()则相反。
例如,调用slideUp()slideDown()方法实现页面中元素的向上和向下的滑动效果,如下图所示:

 <h3>使用slideUp()和slideDown()方法的滑动效果</h3>
    <div id="divtest">
        <img src="cancel.png" height="110" width="110" alt="">
    </div>
    <input type="button" value="向上滑" id="btnAct">
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        var $div = $("#divtest");
        $("#btnAct").bind("click",function(){
            var $this = $(this);
            if ($this.val()=="向上滑") {
                $div.slideUp(3000,function(){
                    $this.val("向下滑");
                });
            }else {
                $div.slideDown(3000,function(){
                    $this.val("向上滑");
                });
            }
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,根据按钮中显示的内容,分别调用slideUp()slideDown()方法,实现图片元素向上和向下的滑动效果,当每个滑动效果完成时,再通过回调函数改变按钮中显示内容。
滑动与淡入淡出的区别:滑动改变元素的高度,淡入淡出改变元素的透明度

使用slideToggle()方法实现图片“变脸”效果

使用slideToggle()方法可以切换slideUp()slideDown(),即调用该方法时,如果元素已向上滑动,则元素自动向下滑动,反之,则元素自动向上滑动,格式为:$(selector).slideToggle(speed,[callback])
其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”、“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。
例如,在页面中,使用slideToggle()方法实现图片“变脸”效果,如下图所示:

 <h3>使用slideToggle()方法实现图片“变脸”效果</h3>
    <div id="divtest1">
        <img src="cancel.png" height="110" width="110">
    </div>
    <div id="divtest2">
        <img src="cancel.png" height="110" width="110">
    </div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        var $div1 = $("#divtest1");
        var $div2 = $("#divtest2");
        $div1.bind("click",function(){
            $div1.slideToggle(3000,function(){
                $div2.slideToggle(3000);
            });
        });
        $div2.bind("click",function(){
            $div2.slideToggle(3000,function(){
                $div1.slideToggle(3000);
            })
        });
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击第一张图片时,向上滑动收起该图片,当收起完成时,触发回调函数,调用第二张图片的slideToggle()方法,向下滑动显示第二张图片。

使用fadeIn()fadeOut()方法实现淡入淡出效果

fadeIn()和fadeOut()方法可以实现元素的淡入淡出效果,前者淡入隐藏的元素,后者可以淡出可见的元素,它们的调用格式分别为:$(selector).fadeIn(speed,[callback])和$(selector).fadeOut(speed,[callback])
其中参数speed为淡入淡出的速度,callback参数为完成后执行的回调函数名。
例如,分别在页面中以淡入淡出的动画效果显示图片元素,如下图所示:

<h3>使用slideToggle()方法实现图片“变脸”效果</h3>
<div id="divtest1">
    <img src="cancel.png" height="110" width="110">
</div>
<div id="divtest2">
    <img src="cancel.png" height="110" width="110">
</div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    var $div1 = $("#divtest1");
    var $div2 = $("#divtest2");
    $div1.bind("click",function(){
        $div1.fadeOut('3000', function() {
        });(3000,function(){
            $div2.fadeIn(3000);
        });
    });
    
    $div2.bind("click",function(){
        $div2.fadeOut(3000,function(){
            $div1.fadeIn(3000);
        })
    });
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“淡出”按钮时,调用fadeOut()方法以淡出效果隐藏图片,当点击“淡入”按钮时,调用fadeIn()方法以淡入效果显示图片。

使用fadeTo()方法设置淡入淡出效果的不透明度

调用fadeTo()方法,可以将所选择元素的不透明度以淡入淡出的效果调整为指定的值,该方法的调用格式为:$(selector).fadeTo(speed,opacity,[callback])
其中speed参数为效果的速度,opacity参数为指定的不透明值,它的取值范围是0.0~1.0,可选项参数callback为效果完成后,回调的函数名。
例如,分别调用fadeTo()方法,设置三个图片元素的不透明度值,如下图所示:

   <h3>使用fadeTo()方法设置淡入淡出效果的不透明度</h3>
    <img src="cancel.png" height="110" width="110" alt="">
    <img src="cancel.png" height="110" width="110">
    <img src="cancel.png" height="110" width="110">
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("img").each(function(index){
            switch (index) {
                case 0:
                    $(this).fadeTo(3000, 0.2);
                    break;
                case 1:
                    $(this).fadeTo(3000, 0.4);
                    break;
                case 2:
                    $(this).fadeTo(3000, 0.6);
                    break;
            }
        });
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,调用fadeTo()方法,分别改变“opacity”参数的值,以淡入淡出的动画效果设置图片元素的不透明度。

调用animate()方法制作简单的动画效果

调用animate()方法可以创建自定义动画效果,它的调用格式为:$(selector).animate({params},speed,[callback])
其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。
例如,调用animate()方法以由小到大的动画效果显示图片,如下图所示:

  <h3>制作简单的动画效果</h3>
    <img src="cancel.png" height="110" width="110">
    <din id="tip"></din>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("img").animate({
            width:"200px",
            height:"200px"
        },
        3000,function(){
            $("#tip").html("执行完成!");
        });
    });
    </script>

在浏览器中显示的效果:

从图中可以看出,调用animate()方法,以渐渐放大的动画效果显示图片元素,当动画执行完成后,通过回调函数在页面的<div>元素中显示“执行完成!”的字样。

调用animate()方法制作移动位置的动画

调用animate()方法不仅可以制作简单渐渐变大的动画效果,而且还能制作移动位置的动画,在移动位置之前,必须将被移元素的“position”属性值设为“absolute”“relative”,否则,该元素移动不了。
例如,调用animate()方法先将图片向右移动90px,然后,再将图片宽度与高度分别增加30px,如下图所示:

<h3>制作简单的动画效果</h3>
<img src="cancel.png" height="110" width="110">
<din id="tip"></din>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    $("img").animate({
        left:"+=90px"
    },3000,function(){
        $(this).animate({
            height:'+=30px',
            width:'+=30px'
        },3000,function(){
            $("#tip").html("执行完成!");
        });
    });
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,图片先向右移动了“90px”,然后,移动成功后,再在原来的基础之上以动画的效果增大30px,增加成功后,显示“执行完成!”的字样。

调用stop()方法停止当前所有动画效果

stop()方法的功能是在动画完成之前,停止当前正在执行的动画效果,这些效果包括滑动、淡入淡出和自定义的动画,它的调用格式为:$(selector).stop([clearQueue],[goToEnd])
其中,两个可选项参数clearQueuegoToEnd都是布尔类型值,前者表示是否停止正在执行的动画,后者表示是否完成正在执行的动画,默认为false。
例如,在页面中,当图片元素正在执行动画效果时,点击“停止”按钮,中止正在执行的动画效果,如下图所示:

<h3>制作简单的动画效果</h3>
<img src="cancel.png">
<input type="button" value="停止" id="btnStop">
<div id="tip"></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    $("img").animate({
        left:'+=30px'
    },3000,function(){
        $(this).animate({
            height:'+=30px',
            width:'+=30px'
        },3000,function(){
            $("#tip").html("执行完成!");
        });
    });
    $("#btnStop").bind("click",function(){
        $("img").stop();
        $("#tip").html("执行停止!");
    });
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当页面中的图片正在执行动画效果向右移动时,由于点击了“停止”按钮,执行了图片元素的stop方法,因此,中止了正在执行的动画效果。

调用delay()方法延时执行动画效果

delay()方法的功能是设置一个延时值来推迟动画效果的执行,它的调用格式为:$(selector).delay(duration)
其中参数duration为延时值,它的单位是毫秒,当超过延时值时,动画继续执行。
例如,当页面中图片动画正在执行时,点击“延时”按钮调用delay()方法推迟2000毫秒后继续执行,如下图所示:

<h3>制作简单的动画效果</h3>
<img src="cancel.png">
<input type="button" value="延时" id="btnStop">
<div id="tip"></div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    $("img").animate({
        width: '+=30px'
    },5000,function(){
        $(this).animate({
            height:'+=30px',
            width:'+=30px'
        },3000,function(){
            $("#tip").html("执行完成!");
        });
    });
    $("#btnStop").bind("click",function(){
        $("img").delay(2000);
        $("#tip").html("正在延时");
    });
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当图片动画正在执行时,点击“延时”按钮,调用delay()方法中止当前正在执行的图片动画效果,当超过设置的延时值时,动画效果继续执行。

Ajax

使用load()方法异步请求数据

使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:load(url,[data],[callback])
参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。
例如,点击“加载”按钮时,向服务器请求加载一个指定页面的内容,加载成功后,将数据内容显示在<div>元素中,并将加载按钮变为不可用。如下图所示:

<h3>使用load方法异步请求数据</h3>
<div id="divtest">
    <div class="title">
        <span class="f1">我最爱吃的水果</span>
        <span class="fr"><input type="button" value="加载" id="btnShow"></span>
    </div>
    <div class="content"></div>
</div>
<script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
    $("#btnShow").bind("click",function(){
        var $this = $(this);
        $(".content")
        .html("<img src="cancel.png">")
        .load("tab.html",function(){
            $this.attr("disabled","true");
        });
    })
});
</script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“加载”按钮时,通过调用load()方法向服务器请求加载fruit.html文件中的内容,当加载成功后,先显示数据,并将按钮变为不可用。

使用getJSON()方法异步加载JSON格式数据

使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为:jQuery.getJSON(url,[data],[callback])$.getJSON(url,[data],[callback])
其中,url参数为请求加载json格式文件的服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。
例如,点击页面中的“加载”按钮,调用getJSON()方法获取服务器中JSON格式文件中的数据,并遍历数据,将指定的字段名内容显示在页面中。如下图所示:

  <div id="divtest">
        <div class="title">
            <span class="f1">我最喜欢的运动</span>
            <span class="fr"><input type="button" value="加载" id="btnShow"></span>
        </div>
<ul></ul>
    </div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
            var $this=$(this);
            $.getJSON("sport.json",function(data){
                $this.attr("disabled","true");
                $.each(data,function(index,sport){
                    $("ul").append("<li>" + sport["name"] + "</li>")
                });
            });
        })
    });

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“加载”按钮时,通过getJSON()方法调用服务器中的sport.json文件,获取返回的data文件数据,并遍历该数据对象,以data[“name”]取出数据中指定的内容,显示在页面中。

使用getScript()方法异步加载并执行js文件

使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示:
jQuery.getScript(url,[callback])$.getScript(url,[callback])
参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。
例如,点击“加载”按钮,调用getScript()加载并执行服务器中指定名称的JavaScript格式的文件,并在页面中显示加载后的数据内容,如下图所示:

    <div id="divtest">
        <div class="title">
            <span class="f1">我最喜欢的运动</span>
            <span class="fr"><input type="button" value="加载" id="btnShow"></span>
        </div>
    <ul></ul>
    </div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
            // var $this=$(this);
            // $.getScript("sport.js",function(data){
            //     $this.attr("disabled","true");
            // });
    $.each(data,function(index, sport) {
    $("ul").append("<li>" + sport["name"] + "</li>");
});
            
        })
    });
    </script>
    <script src="sport.js"></script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“加载”按钮调用getScript()方法加载服务器中的JavaScript格式文件后,自动执行文件代码,将数据内容显示在<ul>元素中。

使用get()方法以GET方式从服务器获取数据

使用get()方法时,采用GET方式向服务器请求数据,并通过方法中回调函数的参数返回请求的数据,它的调用格式如下:$.get(url,[callback])
参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。
例如,当点击“加载”按钮时,调用get()方法向服务器中的一个.php文件以GET方式请求数据,并将返回的数据内容显示在页面中,如下图所示:

   <div id="divtest">
        <div class="title">
            <span class="f1">我的个人资料</span>
            <span class="fr"><input type="button" value="加载" id="btnShow"></span>
        </div>
    <ul></ul>
    </div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
            var $this=$(this);
            $.get("info.php",function(data){
                $this.attr("disabled","true");
                $("ul").append("<li>我的名字叫:" + data.name + "</li>");
                $("ul").append("<li>常常有人对我说:" + data.say + "</li>")
            },"json");      
        })
    });
    </script>
    <script src="sport.js"></script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,通过$.get()方法向服务器成功请求数据后,在回调函数中通过data参数传回请求的数据,并以data.name格式访问数据中各项的内容。

使用post()方法以POST方式从服务器发送数据

get()方法相比,post()方法多用于以POST方式向服务器发送数据,服务器接收到数据之后,进行处理,并将处理结果返回页面,调用格式如下:$.post(url,[data],[callback])
参数url为服务器请求地址,可选项data为向服务器请求时发送的数据,可选项callback参数为请求成功后执行的回调函数。
例如,在输入框中录入一个数字,点击“检测”按钮,调用post()方法向服务器以POST方式发送请求,检测输入值的奇偶性,并显示在页面中,如下图所示:

<div id="divtest">
        <div class="title">
            <span class="f1">检查数字的奇偶性</span>
            <span class="fr">
            <input type="button" value="检测" id="btnShow"></span>
        </div>
        <ul>
            <li>请输入一个数字
                <input type="text" id="txtNumber" size="12"/>
            </li>
        </ul>
    <ul></ul>
    </div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind("click",function(){
        $.post("check.php",{
            num:$("#txtNumber").val()
        },
        function(data){
            $("ul").append('<li>你输入的<b>' + $("#txtNumber").val() + "</b>是<b>" + data + "</b></li>");
        }) ;   
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“检测”按钮时,获取输入框中的值,并将该值使用$.post()方法一起发送给服务器,服务器接收该值后并进行处理,最后返回处理结果。

使用serialize()方法序列化表单元素值

使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式如下:$(selector).serialize()
其中selector参数是一个或多个表单中的元素或表单元素本身。
例如,在表单中添加多个元素,点击“序列化”按钮后,调用serialize()方法,将表单元素序列化后的标准URL编码文本字符串显示在页面中,如下图所示:

<div id="divtest">
    <div class="title">
        <class class="f1">我的个人资料</class>
        <span class="fr">
            <input type="button" value="序列化" id="btnAction"/>
        </span>
    </div>
    <form action="">
        <li>姓名:<input type="text" name="Text1" size="12"/></li>
        <li>
            <select name="Select1">
                <option value="0">男</option>
                <option value="1">女</option>
            </select>
        </li>
        <li><input type="checkbox" name="Checkbox1"/>资料是否可见</li>
        <li id="litest"></li>
    </form>
</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnAction").bind("click",function(){
            $("#litest").html($("form").serialize());
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“序列化”按钮后,调用表单元素本身的serialize()方法,将表单中元素全部序列化,生成标准URL编码,各元素间通过&号相联。

使用ajax()方法加载服务器数据

使用ajax()方法是最底层、功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下:jQuery.ajax([settings])或$.ajax([settings])
其中参数settings发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的方式,默认为get
例如,点击页面中的“加载”按钮,调用ajax()方法向服务器请求加载一个txt文件,并将返回的文件中的内容显示在页面,如下图所示:

<div id="divtest">
    <div class="title">
        <span class="f1">加载一段文字</span>
        <span class="fr">
            <input type="button" value="加载" id="btnShow">
        </span>
    </div>
    <ul></ul>
</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind('click', function() {
            var $this = $(this);
            $.ajax({
                url:"article.txt",
                dataType:"text",
                sunccess:function(data){
                    $this.attr("disabled","true");
                    $("ul").append(data);
                }
            });
        });
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,当点击“加载”按钮时,调用$.ajax()方法请求服务器中txt文件,当请求成功时调用success回调函数,获取传回的数据,并显示在页面中。

使用ajaxSetup()方法设置全局Ajax默认选项

使用ajaxSetup()方法可以设置Ajax请求的一些全局性选项值,设置完成后,后面的Ajax请求将不需要再添加这些选项值,它的调用格式为:jQuery.ajaxSetup([options])或$.ajaxSetup([options])
可选项options参数为一个对象,通过该对象设置Ajax请求时的全局选项值。
例如,先调用ajaxSetup()方法设置全局的Ajax选项值,再点击两个按钮,分别使用ajax()方法请求不同的服务器数据,并将数据内容显示在页面,如下图所示:

<div id="divtest">
    <div class="title">
        <span class="f1">加载一段文字</span>
        <span class="fr">
            <input type="button" value="加载1" id="btnShow_1">
            <input type="button" value="加载2" id="btnShow_2">         
        </span>
    </div>
    <ul></ul>
</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#btnShow").bind('click', function() {
            $.ajaxSetup({
                dataType:"text",
                success:function(data){
                    $("ul").empty().append(data);
                }
            });
            $("#btnShow_1").bind("click",function(){
                $.ajax({url:article_1.txt})
            })
            $("#btnShow_1").bind("click",function(){
                $.ajax({url:article_1.txt})
            })            
        });
    });
    </script>

在浏览器中显示的效果:

Alt text
Alt text

从图中可以看出,使用ajaxSetup()方法设置了Ajax请求时的一些全局性的配置选项后,在两次调用ajax请求服务器txt文件时,只需要设置url地址即可。

使用ajaxStart()ajaxStop()方法

ajaxStart()ajaxStop()方法是绑定Ajax事件。ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数。它们的调用格式为:$(selector).ajaxStart(function())$(selector).ajaxStop(function())
其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数。
例如,在调用ajax()方法请求服务器数据前,使用动画显示正在加载中,当请求成功后,该动画自动隐藏,如下图所示:

<div id="divtest">
    <div class="title">
        <span class="f1">加载一段文字</span>
        <span class="fr">
            <input type="button" value="加载" id="btnShow_1">
        </span>
    </div>
    <ul>
        <li id="divload"><img src="cancel.png" height="110" width="110"></li>
    </ul>
</div>
    <script src="Bootstrap test/jQuery/jquery-2.2.0.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#divload").ajaxStart(function(){$(this).show();});
        $("#divload").ajaxStop(function(){$(this).hide();});
        $("#btnShow_1").bind("click",function(){
            var $this = $(this);
            $.ajax({
                url: 'info.php',
                dataType: 'json',
                sunccess:function(data){
                    $this.attr("disabled","true");
                    $("ul").append("<li>我的名字叫:" + data.name + "</li>");
                    $("ul").append("<li>我的名字叫:" + data.name + "</li>");
                }
            });
                
        })
    });
    </script>

在浏览器中显示的效果:


Alt text
Alt text

从图中可以看出,由于使用ajaxStart()ajaxStop()方法绑定了动画元素,因此,在开始发送Ajax请求时,元素显示,请求完成时,动画元素自动隐藏。
注意:该方法在1.8.2下使用是正常的

推荐阅读更多精彩内容

  • 第1章 jQuery实现Ajax应用 1-1 使用load()方法异步请求数据 使用load()方法通过Ajax请...
    mo默22阅读 900评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 127,595评论 18 546
  • 1、在jQuery 中, $(document).ready()是什么意思?和window.onload的区别? ...
    Iswine阅读 35评论 0 0
  • 近期我想要企业资金流畅,财务富足,企业月销售额突破800万,月利润突破100万,所有众生拥有无边无量的财富,拥有像...
    lindacheng2017阅读 30评论 0 2
  • 希音,每次这样叫你都觉得好陌生,世上因为我才多了这么一个名字,多了一个叫贺希音的小人儿,或许有同名同姓之人,但我和...
    璟玄麻麻阅读 73评论 6 2