在jquery中追加元素

时间:2014-03-12 05:45:53

标签: jquery html

我不明白为什么我的jquery没有将元素附加到我的网页

这是代码

 <script>
    $(document).ready(function() {
            $(function() {
         $("#button<?php echo $data['id']; ?>").click(function(e) {
--> Append          $(this).append("<p id='xxxx'> </p>");
                    $.ajax({
                        type: "POST",
                        url: "<?php echo Yii::app()->createUrl('post/create'); ?>",
                        success: function(data) {

                            $("#xxxx").html(data);
                        }
                    });
                });
                 });
        });
    </script>

有人有想法吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

您可能需要after()因为按钮不会包含p作为输入类型=&#34;按钮&#34;不是容器控件。

$(this).after("<p id='xxxx'> </p>");

如果需要,您可以使用包含p的标记

<强> Live Demo

HTML

<div>
     Div containing button tag
    <button  id="buttoncontrol" />
</div>

的Javascript

$('#buttoncontrol').append("<p>this is p</p>");

答案 1 :(得分:0)

<button></button>不包含像此<button><p>your para</p></button>

这样的p元素

所以,你可能会尝试附加这样的文字:

$(this).text("your_text");

或者,您想要在按钮后追加,然后您可以这样做:

$(this).after('<p id="xxxx" />');

或者,像这样:

$('<p id="xxxx" />').insertAfter($(this));

答案 2 :(得分:0)

尝试这样做:

$(function () {
    $("#button<?php echo $data['id']; ?>").click(function (e) {
        var $this = $(this);
        $.ajax({
            type: "POST",
            url: "<?php echo Yii::app()->createUrl('post/create'); ?>",
            success: function (data) {
                $this.after("<p id='xxxx'>" + data + "</p>");
            }
        });
    });
});

由于<button>不能包含<p>元素,因此您需要在按钮后添加段落。

此外,您只需要一个DOM就绪处理程序$(function() {...});