1

我能想到的最简单的例子是第一次点击时无休止的“你点击”,然后第二次点击“你再次点击”和“你一次又一次点击”,最后“你一次又一次点击......n ...然后再次。”

所以第一次点击是正常的。第二个附加“再次”。每次后附加“and again”。

我试着用增加的索引来做,但我不知道如何像我需要的那样乘以一个字符串:

$("button").click(function(){
    $(this).text("You clicked" + index++ + "");

但当然,这只会返回“你点击了 1”等。

4

4 回答 4

4

一个简单的方法是有一个像下面这样的数组并使用它..

var myText = ['You clicked', ' again', ' and again'];
var ptr = 0;
$("button").click(function () {
    $(this).text(function (i, v) {
        return (ptr == 0)?myText[ptr]:(v + myText[ptr]);
    });
    if (ptr < myText.length - 1) ptr++;
});

使用该数组,您可以控制要附加多少不同的消息。

演示:http: //jsfiddle.net/x66sd/

于 2013-08-16T17:44:49.037 回答
3

$(this).text($(this).text() + " again");

大多数处理元素属性的 jQuery 函数都可用于获取和设置该属性的值,例如,$elem.text()为您提供当前文本值,$elem.text(value)将其设置为value.

于 2013-08-16T17:42:10.257 回答
3
$(document).ready(function(){
var c = 0;
    $('button').click(function(){
        if(c == 0) {$(this).append(' again');c++;}
        else $(this).append(' and again')
    })

})

我建议这个而不是使用$(this).text()两次。:)

JSFIDDLE 演示

于 2013-08-16T17:44:01.907 回答
1

不是很优雅,但它有效:

http://jsfiddle.net/35uHB/

var clickCount = 0;
$('.theDiv').click(function() {
    var text = ["You clicked"];

    if (clickCount > 0) {
        text.push(" again");
    }

    for (var i = 1; i < clickCount; i++)
    {
        text.push(" and again");
    }
    text.push("!");

    clickCount++;

    $('.result').text(text.join(''));    

});
于 2013-08-16T17:46:17.870 回答