父母不要在父母身边停下来

时间:2014-04-10 22:46:19

标签: javascript jquery html

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

HTML

<ul class ='product-categories'>
    <li><a href ='http://example.com/link1'>Link 1</a>
        <ul>
            <li><a href ='http://example.com/link/sub-link1'>Sub link 1</a></li>
            <li><a href ='http://example.com/link/sub-link2'>Sub link 2</a></li>
            <li><a href ='http://example.com/link/sub-link3'>Sub link 3</a></li>
        </ul>
    </li>
    <li><a href ='http://example.com/link2'>Link 2</a></li>
    <li><a href ='http://example.com/link3'>Link 3</a></li>
    <li><a href ='http://example.com/link4'>Link 4</a></li>
</ul>

jquery的

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

它跳过了产品类别,而且一直在继续。如果我提供'ul'作为过滤器:

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

除了产品类别外,它会切换页面上的每个ul。

编辑:假设这是由于真实页面上的冲突,因为小提琴工作正常。取下链接,并试图找到另一种方法来做到这一点。

1 个答案:

答案 0 :(得分:-1)

应该是

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

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