在JQuery中附加到CSS Div不起作用

时间:2014-04-17 22:07:06

标签: javascript jquery css html

我有一个写一个城镇描述的功能。我想在div中显示它。但是,当我尝试这个时,它将文本放在 div之后,而不是放在它里面。

因此它显示div和文本,但不显示div中的文本。以下是最相关的部分(跳过几个不相关的部分):

  

#description { height: 50px; background-color: #A7DBD8; }

     

<div id="description"></div>

     

function town () { document.write("You are in the town of ",placevals[playerlocation][0],"<br>"); }

     

$("#description").appendTo(town());

我已尝试使用.html并替换div,但也没有效果。 (例如'<div id="blue"'>+town()+'</div>'

我可能只是愚蠢,但任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

你有一个没有返回值的town函数,然后你将调用它的结果(undefined)传递给appendTo(希望你通过在选择器或元素中。)

如果您的目标是将town生成的文字附加到#description div,那么:

function town () {
    // Return the text, and use `+` to concatenate strings
    return "You are in the town of " + placevals[playerlocation][0] + "<br>";
}

// Use `append`
$("#description").append(town());

答案 1 :(得分:0)

document.write正在将文本输出到文档中。您的函数应该返回一个值,然后您可以使用.html()来正确解释<br>以及您想要的文本。

答案 2 :(得分:0)

您还应该将文本作为字符串返回,然后可以使用.html()函数将其注入div元素。

//Assuming these variables are defined.
var placevals = {}
    placevals['newyork'] = 'New York';
    playerlocation = 'newyork'

function town () { 
    return 'You are in the town of ' + placevals[playerlocation] + '.';
}

$("#description").html(town('newyork'));

工作示例:http://jsfiddle.net/ZynU9/4/