关于jQuery append()以及如何检查元素是否已被追加

时间:2011-10-31 08:53:22

标签: javascript jquery javascript-events

我制作了一个非常简单的按钮点击事件处理程序,我希望在点击按钮后添加<p>元素,您可以检查my code here

<div id="wrapper">
    <input id="search_btn" value="Search" type="button">
</div>
$("#search_btn").click(function(){
    $("#wrapper").append("<p id='other'>I am here</p>");
});

我有两个问题要问:

1,为什么我的.append()无法按预期工作(这会附加<p>元素)

jQuery中的

2。,如何检查是否已经附加了一些元素?例如,如何检查我的案例中是否已附加<p id="other">

-------------------- update ----------------------- --------------------

请检查my updated code here

所以,只有第二个问题仍然存在......

6 个答案:

答案 0 :(得分:27)

  1. 您使用的是mootools而不是jQuery。

  2. 检查您的元素是否存在

  3. if($('#other').length > 0)

    因此,如果您不想将元​​素追加两次:

    $("#search_btn").click(function() {
        if($('#other').length == 0) {
            $("#wrapper").append("<p id='other'>I am here</p>");
        }
    });
    

    或者,您可以使用.one(function) [doc]:

    $("#search_btn").one('click', function() {
        $("#wrapper").append("<p id='other'>I am here</p>");
    });
    

答案 1 :(得分:4)

1)默认情况下,jsFiddle在MooTools中加载,你需要包含jQuery才能工作。世界上没有理由为什么这个例子不起作用。 (假设$实际上映射到jQuery对象,那就是。)

2)您可以查看nextSibling的{​​{1}},或使用DOMElement jQuery方法,如下所示:

next()

答案 2 :(得分:2)

http://jsfiddle.net/j36ye/17/

$("#search_btn").click(function(){
    if(($('#other').length) == 0) {
        $("#wrapper").append("<p id='other'>I am here</p>");
    }
    return false
});

var other_appended = false;

$("#search_btn").click(function(){
    if(other_appended == false) {
         $("#wrapper").append("<p id='other'>I am here</p>");
          other_appended = true;
    }
    return false;
});

答案 3 :(得分:2)

如何检查元素是否存在:

if($("p#other").length > 0) {
    // a p element with id "other" exists
}
else {
    // a p element with id "other" does not exist
}

答案 4 :(得分:1)

你的小提琴正在使用moo工具框架。将其更改为使用左侧的jquery框架,它可以正常工作。见http://jsfiddle.net/KxGsj/

答案 5 :(得分:1)

检查元素是否已经附加:

alert($(this).parent().length?'appended':'not appended');