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
,这会使