Image 向<;添加文本时Img消失;p>;

Image 向<;添加文本时Img消失;p>;,image,function,text,Image,Function,Text,我想在同样包含图像的div中的元素中添加一些动态文本,但是添加文本时图像会消失。我的函数位于单击事件处理程序中,除了消失的图像外,它的性能与预期一致。我知道这很简单,但作为自学成才的人,看似简单的事情并不总是适合我 HTML CSS #记分信息{ 位置:绝对位置; 宽度:20%; 高度:200px; 背景色:#8FBC8F; } JQ函数 function score_message(score) { if(score == 5) { var message = "Congratulat

我想在同样包含图像的div中的元素中添加一些动态文本,但是添加文本时图像会消失。我的函数位于单击事件处理程序中,除了消失的图像外,它的性能与预期一致。我知道这很简单,但作为自学成才的人,看似简单的事情并不总是适合我

HTML

CSS #记分信息{ 位置:绝对位置; 宽度:20%; 高度:200px; 背景色:#8FBC8F; }

JQ函数

function score_message(score) {
  if(score == 5) {
var message = "Congratulations, etc, etc";
$('#score-message').first('p').text(message).show().offset({top:300, left:850});
}

如果图像位于第一个“p”标记内,则通过调用文本,您将覆盖它。试试这个:

var pTag = $('#score-message').first('p');
pTag.html(pTag.html() + " HA! HA! HA! YOU A WINNER!!!");
请注意使用html而不是文本。我相信文本会剥离标记,或者至少不会这样对待它,并逃避它或其他东西

您还可以执行以下操作:

pTag.append(" HA! HA! HA! YOU A WINNER!!!");

我没有尝试html方法,因为文档说明:当使用.html()设置元素的内容时,该元素中的任何内容都会被新内容完全替换。让我试试。我相信同样的事情也适用于文本。在其中任何一种情况下,您都会说“将我的内容设置为此”。它就是这样做的,覆盖了以前的内容。从jquerydocsfortext(content):“将匹配元素集中每个元素的内容设置为指定的文本”——这意味着替换所有内容。另外,按照我在回答中所说的:“我们需要注意,此方法会根据需要转义提供的字符串,以便在HTML中正确呈现。为此,它调用DOM方法。createTextNode()不会将字符串解释为HTML”