Javascript JQuery$.contains方法始终返回false

Javascript JQuery$.contains方法始终返回false,javascript,jquery,Javascript,Jquery,我对JQuery代码的这一部分有一个问题: $(".roomblock_slots li").droppable({ activeClass: "drop_here", hoverClass: "hover_here", tolerance: "pointer", drop: function (event, ui) { var container = $(this); if (container.contains(containe

我对JQuery代码的这一部分有一个问题:

$(".roomblock_slots li").droppable({ activeClass: "drop_here", hoverClass: "hover_here", tolerance: "pointer",
        drop: function (event, ui) {
            var container = $(this);
            if (container.contains(container,"div")) {
                return false;
            }
            return true;
        } });
我试图将一个元素放入一个li元素中,我想检查它是否包含一个div元素。问题是,函数本身总是返回false,而从不返回false;,即使li包含div元素,如下所示:

<li class="ui-droppable">
    <div class="ui-draggable">
</li>
如何解决此问题?

实用程序方法$.contains无法按预期工作

它采用的参数是:container和contained,您可以像这样使用它:

$.contains(container, contained)
这两个参数都应该是DOM元素,而不是jQuery对象或选择器

因此,在您的情况下,因为您没有寻找包含在另一个特定元素中的特定元素,所以不能使用$.contains-您必须使用另一个方法

我建议使用。查找并计算匹配数:

if (container.find("div").length > 0) {

}
当然,如果您只想查看直系子女,请使用:

if (container.children("div").length > 0) {

}
实用程序方法$.contains无法按预期工作

它采用的参数是:container和contained,您可以像这样使用它:

$.contains(container, contained)
这两个参数都应该是DOM元素,而不是jQuery对象或选择器

因此,在您的情况下,因为您没有寻找包含在另一个特定元素中的特定元素,所以不能使用$.contains-您必须使用另一个方法

我建议使用。查找并计算匹配数:

if (container.find("div").length > 0) {

}
当然,如果您只想查看直系子女,请使用:

if (container.children("div").length > 0) {

}

链接时,您将执行以下操作:

if ( container.has('div') ) {...}

链接时,您将执行以下操作:

if ( container.has('div') ) {...}

容器。有'div'容器。有'div'是的。它声明如下:$.contains方法在第二个参数提供的DOM元素是第一个参数提供的DOM元素的后代时返回true。所以我很想知道为什么它不起作用。另外,我早些时候尝试了$.find。忘了我需要特别检查长度。非常感谢@我刚刚编辑了Sefam,希望有一个有帮助的解释。问题在于$方法包含哪些参数accepts@lan“>0是不必要的。@Derek朕會功夫 是的,我知道,很多东西在Javascript中是不必要的,因为事情是隐式完成的,但我喜欢显式的。它声明如下:$.contains方法在第二个参数提供的DOM元素是第一个参数提供的DOM元素的后代时返回true。所以我很想知道为什么它不起作用。另外,我早些时候尝试了$.find。忘了我需要特别检查长度。非常感谢@我刚刚编辑了Sefam,希望有一个有帮助的解释。问题在于$方法包含哪些参数accepts@lan“>0是不必要的。@Derek朕會功夫 是的,我知道,在Javascript中有很多事情是不必要的,因为事情是隐式完成的,但我喜欢显式的。你不能将选择器作为第二个参数传递。它只接受两个参数的DOM元素。@lan-看起来您可以传入选择器。has:@Derek朕會功夫 - 评论是在答案中包含$.contains的部分,我删除了它,因为它根本不是用于此的正确方法。这将是正确的方法!不能将选择器作为第二个参数传递。它只接受两个参数的DOM元素。@lan-看起来您可以传入选择器。has:@Derek朕會功夫 - 评论是在答案中包含$.contains的部分,我删除了它,因为它根本不是用于此的正确方法。这将是正确的方法!