如何使用jQuery将文本附加到div中?

8
我尝试使用jQuery将一段文本附加到一个div中。我使用以下代码进行操作:
<html><head></head><body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#sendButton").click(function(){
            $("#conversation").append("<P>This is a message");
        });
    });
</script>
<div class="conversation"><p>some message</div>
<form><input type="button" id="sendButton" value="Send Message"></form>
</body></html>

看到这个主题上的众多教程,它似乎是一件非常简单的事情,但我似乎无法弄清楚我在这里做错了什么。任何帮助都将不胜感激。


1
你不能添加部分元素,而且你的HTML中也不应该有未关闭的元素。其他人很快就会指出选择器是错误的。 - adeneo
1
@adeneo: p元素:如果p元素紧接着是address、article、aside、blockquote、div、dl、fieldset、footer、form、h1、h2、h3、h4、h5、h6、header、hgroup、hr、main、nav、ol、p、pre、section、table或ul元素,或者父元素中没有更多内容且父元素不是a元素,则可以省略p元素的结束标签。而<input>元素是空元素,不需要结束标签(斜杠“/”也是可选的)。 - Andreas
@Andreas - 这就是为什么我写了“不应该”,因为你可以省略闭合的P标签,但在JavaScript中你根本不能这样做,jQuery修复了这个问题并在内部使用innerHTML、createElement、appendChild(取决于方法),在JavaScript中没有未关闭的元素,除了自关闭元素,所以追加一半的元素是完全错误的,即使解析器为您插入了闭合的P标签。 - adeneo
3个回答

12

3

将选择器中的#替换为. (对话框是一个类选择器)

$(".conversation").append("<P>aergerag");

0

我不是很擅长jQuery,但从我的一个项目中,我只需要用HTML定位div如下:

var someData = "This is a message"; $("#conversation").html(someData);

如果这之前存在一些内容,则可以检索它们,连接起来,并将其写回目标div。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接