我正在创建一个复制和粘贴程序,当我单击该框时,出现错误消息: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中。
答案 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")
};
});