Javascript 使用jQuery删除文本并添加新文本

Javascript 使用jQuery删除文本并添加新文本,javascript,jquery,Javascript,Jquery,我正在为freecodecamp开发报价机,我遇到了一个问题。当我点击一个按钮时,我可以在屏幕上看到一个报价,如下所示: 爱所有人,相信少数人,不伤害任何人。 -威廉·莎士比亚 但是,如果我再次单击按钮,第一个引号将消失,第二个引号将出现在我想要的位置,而第二个引号将在第一个引号之后添加,如下所示: 爱所有人,相信少数人,不伤害任何人。快乐是最好的化妆品。 -威廉·莎士比亚-安妮·拉莫特 我尝试了几种不同的方法来删除第一个引号,并替换第二个引号。这是我的代码的当前版本 $('button')。

我正在为freecodecamp开发报价机,我遇到了一个问题。当我点击一个按钮时,我可以在屏幕上看到一个报价,如下所示:

爱所有人,相信少数人,不伤害任何人。 -威廉·莎士比亚

但是,如果我再次单击按钮,第一个引号将消失,第二个引号将出现在我想要的位置,而第二个引号将在第一个引号之后添加,如下所示:

爱所有人,相信少数人,不伤害任何人。快乐是最好的化妆品。 -威廉·莎士比亚-安妮·拉莫特

我尝试了几种不同的方法来删除第一个引号,并替换第二个引号。这是我的代码的当前版本

$('button')。在('click',function()上{
$.getJSON(“https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en,函数(responseText){
$(“.msg”).removeClass();
$(“.nme”).removeClass();
$(“#quote”).addClass(“.msg”).append(responseText.quoteText);
$(“#author”).addClass(“.nme”).append(“-”+responseText.quoteAuthor);
});
});

获得报价

不要使用Append。只需使用text()完全替换文本。Append获取当前文本并将新文本追加到其中

即:

函数
append()
只是将文本a添加到末尾:

将参数指定的内容插入到匹配元素集中每个元素的末尾

您真正需要的是替换内容,尝试使用
text()

$('button')。在('click',function()上{
$.getJSON(“https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en,函数(responseText){
$(“.msg”).removeClass();
$(“.nme”).removeClass();
$(“#quote”).addClass(“.msg”).text(responseText.quoteText);
$(“#author”).addClass(“.nme”).text(“-”+responseText.quoteAuthor);
});
});

获得报价

如果保留
。在div中添加内容,则需要将其替换为
。text
如下所示:

$('button')。在('click',function()上{
$.getJSON(“https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en,函数(responseText){
$(“.msg”).removeClass();
$(“.nme”).removeClass();
$(“#quote”).text(responseText.quoteText);
$(“#author”).addClass(“.nme”).append(“-”+responseText.quoteAuthor);
});
});

获得报价

如果您正在追加(即向元素添加新文本),那么代码段似乎不会运行b/c。与使用.val()或.text()替换代码段相比,它确实会运行,问题是您一直在追加内容,而没有先清空内容,这就是您所需要的,在添加新代码之前,请清除msg span。看起来代码段不会运行b/c。我是在Codepen上完成的,因此代码中没有所有必需的内容。这里有一个指向我的代码笔的链接:David为什么要将类msg分配给quote?是否因为该样式未应用于跨度?如果是这样的话,那么将类移动到div id=“quote”并完全删除span.Programmer,我不知道我做了什么来投反对票。我是stackoverflow的新手,不知道如何使用很多函数。很抱歉。有什么方法可以撤销它吗?嘿,大卫,别担心,你可以通过在消息左侧的-1位置删除向下的投票,然后点击向上箭头。
.addClass(".msg").text( responseText.quoteText);