未捕获的TypeError:$(...)。indexOf不是函数

时间:2019-02-08 10:57:18

标签: jquery

我正在创建一个复制和粘贴程序,当我单击该框时,出现错误消息:Uncaught TypeError:$(...)。indexOf不是一个函数。

我尝试使用.contains,但也得到了相同的结果,但是它说.contains不是函数。

$("#box1").click(function() {
    if ($('#div1').indexOf('#box1')) {
        $("#box1").appendTo("#div2")
    } else if ($("#div2").indexOf("#box1")) {
        $("#box1").appendTo("#div1")
    };
});

单击该框后,应将其从div1中移除,并将其放置在div 2中;如果该框已在div 2中,则应将其移除并置于div 1中。

1 个答案:

答案 0 :(得分:2)

如果要使用jQuery功能,则应使用$.contains()。请参阅$.contains的文档:

  

注意:第一个参数必须是DOM元素,而不是jQuery对象或普通JavaScript对象。

$()一起使用的是jQuery对象。要get the native DOM element,请使用方括号访问元素:

$('#div1')[0];

应用于您的代码:

$("#box1").click(function() {
    if ($.contains( $("#div1")[0], $('#box1')[0] )) {
        $("#box1").appendTo("#div2")
    } else if ($.contains( $("#div2")[0], $('#box1')[0] )) {
        $("#box1").appendTo("#div1")
    };
});