JQuery在点击时附加到所选项目

时间:2012-06-22 13:01:17

标签: javascript jquery html

简而言之,我将在具有这种结构的页面上拥有一系列div:

<div id="statuses">
   <p><?php echo $status; ?></p>
   <div id="statuscom">
      <a id="comment" href="#">Comment</a>
   </div>
</div>

当点击评论href时,我希望它将另一个div附加到已被点击的div,并且只有该div。

我有这个:

$(function {
    $("a#comment").click(function() {  
        $(this).append("<div id=\"statuscomadd\"</div>");
    });
});

这似乎没有做任何事情,再次,任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:1)

  1. 您的语法错误(该函数没有参数,也没有简单的()
  2. 您的HTML错误(div未关闭)
  3. 如果您想在页面加载时创建点击处理程序,请使用$(document).ready(...)$(function () {...})
  4. 你在A标签旁边追加一个空的DIV,这就是你想要的吗?
  5. 为什么在可以点击并添加多个div时使用id(statuscomadd),另一位用户说?更好地使用课程。或者,如果您只需要添加一个div,请使用.one()处理程序。
  6. 尝试:

    $(function () {
        $("a#comment").click(function() {  
            $(this).append("<div class=\"statuscomadd\"></div>");
        });
    });
    

答案 1 :(得分:1)

首先,您不应在同一页面上使用相同ID(注释)的多个标签。

话虽如此,您的代码存在一些问题:function上的括号丢失,附加到<a>标记以及HTML中的语法问题。总的来说,它应该是这样的:

$(function() {
    $("a#comment").click(function() {  
        $("<div id=\"statuscomadd\"></div>").insertAfter(this);
    });
});

答案 2 :(得分:0)

您不应将div附加到标记。相反,您应该在该标签之后(或之前,可能)附加它

$(function() {
    $("a#comment").click(function() {  
        $('<div id="statuscomadd"></div>').insertAfter(this);
    });
});

答案 3 :(得分:0)

语法错误div未关闭

$(function {
    $("a#comment").click(function() {  
    $(this).append("<div id=\"statuscomadd\"></div>");
   });
 });