jquery代码在控制台上工作,但不在脚本标记或附加的js文件中工作

jquery代码在控制台上工作,但不在脚本标记或附加的js文件中工作,jquery,click,Jquery,Click,此代码段在控制台中工作,但既不在脚本标记中,也不在附加的js文件中。在调用此函数时,DOM中可能不存在具有filter close类的元素。我假设您正在动态地向DOM添加元素。是吗?连接事件处理程序时,DOM中可能存在不存在的问题 试着这样做: $(".filter-close").click(function(){ $(this).parent().remove(); }); $.ready()(下面的链接)确保它不会在呈现DOM之前尝试调用代码来添加处理程序,类似于OnLoad

此代码段在控制台中工作,但既不在脚本标记中,也不在附加的js文件中。

在调用此函数时,DOM中可能不存在具有
filter close
类的元素。我假设您正在动态地向DOM添加元素。是吗?

连接事件处理程序时,DOM中可能存在不存在的问题

试着这样做:

$(".filter-close").click(function(){
    $(this).parent().remove();

});
$.ready()(下面的链接)确保它不会在呈现DOM之前尝试调用代码来添加处理程序,类似于OnLoad

还有潜在的库冲突(参见@D4V1D-answer示例),但是如果不知道控制台中出现了什么错误消息(如果有的话),我们就不能确定,更理想的情况是了解有关周围代码的更多信息

请点击F12,查看控制台和/或网络面板中打印的内容,如果F12不执行任何操作,请点击谷歌“BrowserName开发控制台”


但是,正如前面所说,它在控制台中工作,所以我假设您指的是开发控制台,事实上这只是一个时间问题,所以不太可能发生冲突(尽管仍然可能在页面的其他地方出现语法错误)

在调用事件处理程序时等待DOM准备就绪:

$( document ).ready(function() {
  // Handler for .ready() called.

    $(".filter-close").click(function(){
        $(this).parent().remove();

    });

});
当使用另一个JavaScript库时,我们可能希望调用$.noConflict()以避免名称空间问题。调用此函数时,$快捷方式不再可用,这迫使我们在通常情况下每次编写$时都要编写jQuery但是,传递给.ready()方法的处理程序可以接受一个参数,该参数传递给全局jQuery对象。这意味着我们可以在.ready()处理程序的上下文中重命名对象,而不会影响其他代码


请至少复制并粘贴您使用它的页面的代码,然后单击F12查看开发控制台中是否有任何错误。在脚本标记或附加的js文件中运行时,您会遇到什么错误?我真傻,但为什么这个问题会得到两张赞成票???@A.Wolff-我也这么认为,直到你们意识到有多少人有相同的问题,因为他们没有遵循教程或类似的,只是复制粘贴代码而没有测试。然而,我希望OP能够说明为什么被接受的答案对他有效,不管它是否实际上是一个冲突。这不是一个答案,它只是一个注释。@UjwalRatra-可能两者都有,但很明显,答案必须回答这个问题,如果你包含了代码示例,说明如果它是动态添加的,该怎么做,然后也许这是一个答案——否则这只是一个注释,因为OP说代码在控制台中工作,我们可以假设
$
已经引用了jQuery,但这仍然是好的info@A.Wolff:当然,我只是想指出一些其他答案没有提到的东西:)
jQuery(function($) { // this does the trick and also makes sure jQuery is not conflicting with another library 
    $(".filter-close").click(function(){
        $(this).parent().remove();
    });
});