О jQuery append () и как проверить, был ли добавлен элемент
Я сделал очень простой нажмите кнопку обработчик событий, Я хотел бы иметь <p> элемент будет добавлен при нажатии кнопки, вы можете проверить мой код здесь:
<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> элемент)
2. в jQuery, как проверить, если элемент уже добавлен? Например, как проверить, если <p id="other"> уже добавлено в моем случае?
-------------------- обновление -------------------------------------------
пожалуйста, проверьте мой обновленный код.
Итак, остается только 2-й вопрос...
6 ответов
- вы используете mootools, а не jQuery. 
- чтобы проверить, существует ли ваш элемент 
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) jsfiddle загружается в MooTools по умолчанию, вам нужно включить jQuery, чтобы это работало. Нет ни одной причины в мире, почему бы этот пример не сработал. (Предполагая, что $ фактически сопоставляется с jQuery объект, то есть.)
2) Вы можете проверить nextSibling of a DOMElement, или используйте next() метод jQuery, например:
if(!$('#something').next().length) {
   //no next sibling.
}
$("#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;
});
Как проверить, существует ли элемент:
if($("p#other").length > 0) {
    // a p element with id "other" exists
}
else {
    // a p element with id "other" does not exist
}
ваша скрипка использует Moo tools framework. Измените его, чтобы использовать структуру jquery слева, и он работает. См.http://jsfiddle.net/KxGsj/
