Javascript 父项直到不在父项处停止

Javascript 父项直到不在父项处停止,javascript,jquery,html,Javascript,Jquery,Html,我正在使用parentsUntil()打开当前链接上方的所有ul。我已经阅读了文档,但是由于某些原因,它没有按预期工作。下面隐藏了dom顶部的所有内容 html 它跳过了产品类别,amd只是继续前进。如果我提供“ul”作为过滤器: $('a[href= "' + url + '"]') .parentsUntil( $('ul.product-categories'), 'ul' ) .slideToggle('fast'); 它切换页面上除产品类别以外的所有ul 编辑:我假设

我正在使用parentsUntil()打开当前链接上方的所有ul。我已经阅读了文档,但是由于某些原因,它没有按预期工作。下面隐藏了dom顶部的所有内容

html

它跳过了产品类别,amd只是继续前进。如果我提供“ul”作为过滤器:

$('a[href= "' + url + '"]')
    .parentsUntil( $('ul.product-categories'), 'ul' )
    .slideToggle('fast');
它切换页面上除产品类别以外的所有ul

编辑:我假设这是由于acutal页面上的冲突,因为小提琴工作正常。已删除链接,并将尝试找到其他方法来完成此操作

应该是

$('a[href= "' + url + '"]').parentsUntil('ul.product-categories').slideToggle('fast');

可以向函数传递选择器,而不是jQuery对象。(编辑-你可以传递一个jQuery对象,但在这种情况下这会很愚蠢。)

应该提到,尝试过,仍然隐藏切换页面上的所有内容。@Talknerdytom注意,你的HTML有一个破折号,JavaScript在“产品”和“类别”之间有一个下划线。@Pointy确实,如果工程师想让它按照他第一次编程的方式工作,他必须在这方面实现
.eq(0)
。当然,实际上根本就不会使用
parentsUntil()
,因为这是它的初衷。在小提琴上,破折号是一个打字错误,而不是在我的实际代码中。事实上,上面说可以将jQuery对象传递给
。parentsUntil()
,所以我认为这不是问题所在。破折号和下划线可能至少是问题的一部分。你能提供一个提琴吗?你的HTML是
产品类别
,你的jQuery是
产品类别
。两者必须匹配。实际页面中没有输入错误。您的生产页面显示为空,很难从中找出问题所在。真的吗?我使用Ip阻塞,但我已经把它全部删除了。你可以试试
$('a[href= "' + url + '"]')
    .parentsUntil( $('ul.product-categories'), 'ul' )
    .slideToggle('fast');
$('a[href= "' + url + '"]').parentsUntil('ul.product-categories').slideToggle('fast');