Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查jQuery中的一个if语句中是否存在多个元素_Jquery - Fatal编程技术网

检查jQuery中的一个if语句中是否存在多个元素

检查jQuery中的一个if语句中是否存在多个元素,jquery,Jquery,您好,我正在使用waypoints.js,当我不在其目标页面时,它会中断 要解决此问题,我必须在运行waypoints函数之前检查页面上是否存在该元素,如下所示: if (jQuery(".section-2-box").length) { //my code } if (jQuery(".section-3-box").length) { //my code } if (jQuery(".section-4-box").len

您好,我正在使用waypoints.js,当我不在其目标页面时,它会中断

要解决此问题,我必须在运行waypoints函数之前检查页面上是否存在该元素,如下所示:

if (jQuery(".section-2-box").length) {
   //my code             
}

if (jQuery(".section-3-box").length) {
   //my code             
}

if (jQuery(".section-4-box").length) {
   //my code             
}
它是有效的,但问题是我有太多的元素需要检查。我不想写20条if语句


是否可以只执行一个if语句来执行某种类型的逻辑,如
如果所有这些元素都存在,则运行一些代码

如果您知道这些类中只有一个元素,则标准组选择器可以执行此操作:

if (jQuery(".section-2-box, .section-3-box, .section-4-box").length === 3)
如果没有(可能有两个
section-2-box
s和没有
section-3-box
),您可能必须抛出jQuery-specific
:第一个
s:

if (jQuery(".section-2-box:first, .section-3-box:first, .section-4-box:first").length === 3)
例如:

if(jQuery(“.section-2-box:first,.section-3-box:first,.section-4-box:first”)。长度==3){
控制台日志(“是”);
}否则{
控制台日志(“否”);
}
我们应该看到“否”,因为没有.section-3-box

是否为元素提供多个类?这是一个解决方案谢谢你的建议你能更改html吗?在要启用代码的页面上,将一个类添加到body/top-level div中,并检查该类。是的,我只是在想,这很可能是解决方案。谢谢你的回答,这个方法行得通,但是这个方法我需要写出这个类的每个实例,对吗?@cup_of:是的。如果你能让我们更清楚地知道你在做什么(例如,每一个都只有一个),我们就能更准确地帮助你。例如,如果每一个类只有一个,则向它们添加一个公共类并进行检查。但是,如果您可以有两个
section-2-box
和一个
section-3-box
,那么普通类不会有多大帮助;你需要循环检查不同的
section-x-box
类名。因此,我的主页上有很多航路点函数,当我不在主页上时,我会在控制台中出错,因为我的main.js连接到所有页面,它正在查找这些元素。由于我不在主页上,这些元素不存在,所以我得到一个错误。我想我可以通过设置一个主页标志并执行一个if语句来解决这个问题,如果该标志存在,那么在该if语句中运行我的所有航路点