最简单的例子我可以想出的是第一次点击时无休止的“你点击”,然后是第二次,“你再次点击”和“你一次又一次点击”,最后“你一次又一次点击”。 ..n ......再一次。“
所以第一次点击是正常的。第二次“再次”追加。每次追加“再次”。
我尝试用增加的索引来做这件事,但我无法弄清楚如何将字符串乘以我想要的那样:
$("button").click(function(){
$(this).text("You clicked" + index++ + "");
但当然只会返回“你点击1”等等。
答案 0 :(得分: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++;
});
使用该数组,您可以控制要追加的不同邮件数量。
答案 1 :(得分:3)
$(this).text($(this).text() + " again");
大多数操纵元素属性的jQuery函数都可用于获取和设置该属性的值,例如: $elem.text()
为您提供当前文字值,$elem.text(value)
将其设置为value
。
答案 2 :(得分: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 DEMO 强>
答案 3 :(得分:1)
不是很优雅,但它有效:
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(''));
});