检查DIV中是否存在元素

Dan*_*Dan 5 jquery

我希望,在点击时,移动一个div内的元素,除非它已经在里面.我在想像......

单击标记>如果元素在div中不执行任何操作>否则将元素移动到div中

http://jsfiddle.net/establish/Xhhe8/

HTML

<ul>
  <li><a href="#" class="tag">Art</a></li>
  <li><a href="#" class="tag">Computing</a></li>
  <li><a href="#" class="tag">Design</a></li>
</ul>

<div id="crate">
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('.tag').on('click', function(event) {

if ($('#crate').has(this)) {
    // do nothing
}

else {

    $(this).appendTo('#crate');
}
});
Run Code Online (Sandbox Code Playgroud)

它不起作用.也不确定如何表示'什么都不做',通常我只使用一个单一的IF语句,所以不需要代表它.我可以这样做"什么都不做"并禁用点击?

$(this).off(); 
Run Code Online (Sandbox Code Playgroud)

Gab*_*oli 11

这应该做..

$('.tag').on('click', function(event) {

    var self = $(this);
    if (self.closest('#crate').length) {
        // do nothing
    }
    else {
        self.appendTo('#crate');
    }

});
Run Code Online (Sandbox Code Playgroud)


jfr*_*d00 11

Gaby的答案会有效,但我更喜欢在没有空if块的情况下构建它:

$('.tag').on('click', function(event) {
    var self = $(this);
    if (self.closest('#crate').length == 0) {
        self.appendTo('#crate');
    }
});
Run Code Online (Sandbox Code Playgroud)