Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Javascript 单击元素时,使用另一个类查找与此元素相对最近的元素并切换它_Javascript_Jquery - Fatal编程技术网

Javascript 单击元素时,使用另一个类查找与此元素相对最近的元素并切换它

Javascript 单击元素时,使用另一个类查找与此元素相对最近的元素并切换它,javascript,jquery,Javascript,Jquery,我错过了一些东西。单击包含类one的行时,我只想查找包含类two的最近行,然后切换(显示/隐藏) $(.one”)。在('click',function()上{ $(this.find('.two').toggle(); }); 你好 世界 福 酒吧 类似这样的内容: $(".one").on('click', function() { $(this).nextAll('.two:first').toggle(); }); 类似这样的内容: $(".one").on('click

我错过了一些东西。单击包含类
one
的行时,我只想查找包含类
two
的最近行,然后切换(显示/隐藏)

$(.one”)。在('click',function()上{
$(this.find('.two').toggle();
});

你好
世界
福
酒吧
类似这样的内容:

$(".one").on('click', function() {
    $(this).nextAll('.two:first').toggle(); 
});

类似这样的内容:

$(".one").on('click', function() {
    $(this).nextAll('.two:first').toggle(); 
});

类似这样的内容:

$(".one").on('click', function() {
    $(this).nextAll('.two:first').toggle(); 
});

类似这样的内容:

$(".one").on('click', function() {
    $(this).nextAll('.two:first').toggle(); 
});

我想您可能需要
.next()
。它在DOM中查找与DOM中的位置相关的下一个同级

或者可能是这样:

编辑

这是一个有效的解决方案:

$('.one').on('click', function () {
    var this_el = $(this);
    var el = findNextWithClass(this_el, "two");
    if (el != null)
    {
        el.toggle();
    }
    else
    {
        alert("null");
    }
});

function findNextWithClass(element, className) {
    var next = element.next();
    if (next.hasClass(className)) {
        return next
    } else {
        if (next != null) {
            return findNextWithClass(next, className);
        } else {
            return null;
        }
    }
}

我想您可能需要
.next()
。它在DOM中查找与DOM中的位置相关的下一个同级

或者可能是这样:

编辑

这是一个有效的解决方案:

$('.one').on('click', function () {
    var this_el = $(this);
    var el = findNextWithClass(this_el, "two");
    if (el != null)
    {
        el.toggle();
    }
    else
    {
        alert("null");
    }
});

function findNextWithClass(element, className) {
    var next = element.next();
    if (next.hasClass(className)) {
        return next
    } else {
        if (next != null) {
            return findNextWithClass(next, className);
        } else {
            return null;
        }
    }
}

我想您可能需要
.next()
。它在DOM中查找与DOM中的位置相关的下一个同级

或者可能是这样:

编辑

这是一个有效的解决方案:

$('.one').on('click', function () {
    var this_el = $(this);
    var el = findNextWithClass(this_el, "two");
    if (el != null)
    {
        el.toggle();
    }
    else
    {
        alert("null");
    }
});

function findNextWithClass(element, className) {
    var next = element.next();
    if (next.hasClass(className)) {
        return next
    } else {
        if (next != null) {
            return findNextWithClass(next, className);
        } else {
            return null;
        }
    }
}

我想您可能需要
.next()
。它在DOM中查找与DOM中的位置相关的下一个同级

或者可能是这样:

编辑

这是一个有效的解决方案:

$('.one').on('click', function () {
    var this_el = $(this);
    var el = findNextWithClass(this_el, "two");
    if (el != null)
    {
        el.toggle();
    }
    else
    {
        alert("null");
    }
});

function findNextWithClass(element, className) {
    var next = element.next();
    if (next.hasClass(className)) {
        return next
    } else {
        if (next != null) {
            return findNextWithClass(next, className);
        } else {
            return null;
        }
    }
}


如果它与可单击元素对等,则可以使用
.sibbines()
而不是
.find()
-或其他方法,如
parents
closest
next
,具体取决于您的需要。如果它与可单击元素对等,则可以使用
.sibbines()
而不是
.find()
-或其他方法,如
parents
closest
next
,具体取决于您的需要。如果它与可单击元素对等,则可以使用
.sibbines()
而不是
.find()
-或其他方法,如
parents
closest
next
,具体取决于您的需要。如果它与可单击元素对等,则可以使用
.sibbines()
而不是
.find()
-或其他方法,如
parents
closest
next
,具体取决于您的需要。您的解决方案立即适用于这种情况。但我试图将其应用到的是:我想要得到下一个元素,该元素具有与我单击的元素位置相关的
two
类。当我应用您的答案时,它总是返回类为
two
的第一个元素,忽略我单击的元素的位置。这有意义吗?@Neil所说的“位置”是指代码中的位置还是它在屏幕上的实际位置?相对于我单击的元素,下一个
元素的类为
two
。我不知道你所说的代码或屏幕的位置是什么意思。我认为是屏幕,因为我使用引导程序进行响应性设计,所以屏幕可能会改变。@Neil我明白了。这可能是您想要的。您的解决方案立即适用于此情况。但我试图将其应用到的是:我想要得到下一个元素,该元素具有与我单击的元素位置相关的
two
类。当我应用您的答案时,它总是返回类为
two
的第一个元素,忽略我单击的元素的位置。这有意义吗?@Neil所说的“位置”是指代码中的位置还是它在屏幕上的实际位置?相对于我单击的元素,下一个
元素的类为
two
。我不知道你所说的代码或屏幕的位置是什么意思。我认为是屏幕,因为我使用引导程序进行响应性设计,所以屏幕可能会改变。@Neil我明白了。这可能是您想要的。您的解决方案立即适用于此情况。但我试图将其应用到的是:我想要得到下一个元素,该元素具有与我单击的元素位置相关的
two
类。当我应用您的答案时,它总是返回类为
two
的第一个元素,忽略我单击的元素的位置。这有意义吗?@Neil所说的“位置”是指代码中的位置还是它在屏幕上的实际位置?相对于我单击的元素,下一个
元素的类为
two
。我不知道你所说的代码或屏幕的位置是什么意思。我认为是屏幕,因为我使用引导程序进行响应性设计,所以屏幕可能会改变。@Neil我明白了。这可能是您想要的。您的解决方案立即适用于此情况。但我试图将其应用到的是:我想要得到下一个元素,该元素具有与我单击的元素位置相关的
two
类。当我应用您的答案时,它总是返回类为
two
的第一个元素,忽略我单击的元素的位置。这有意义吗?@Neil所说的“位置”是指代码中的位置还是它在屏幕上的实际位置?相对于我单击的元素,下一个
元素的类为
two
。我不知道你所说的代码或屏幕的位置是什么意思。我认为是屏幕,因为我使用引导程序进行响应性设计,所以屏幕可能会改变。@Neil我明白了。这可能是您想要的。这是一种可怕的类测试方法,如果此类类没有下一个同级,那么您的代码将失败,因为
null
没有
.toggle
属性…我明白您的意思。我需要抓住那种情况。我在click方法中添加了if-then。顺便说一句,为什么这是一种“可怕的”类测试方法。对我来说,这是一个具有教育意义的时刻……假设元素有两个类,
two item
,那么您的代码将无声地失败。您可能希望在jQuery中使用
.hasClass
,这会使