打开嵌套导航器的父母

时间:2013-09-11 20:25:08

标签: javascript jquery

我有一个导航仪的代码,我就像手风琴一样工作。

展示我的导航器的图片:

enter image description here

忽略“奇怪的人物”,这是我的语言。

这是它如何构建的代码示例: http://jsfiddle.net/uXA7E/3/

如您所见,导航器的深度最多为3级。

我想要实现的是,如果用户使用jQuery浏览id为“13”左右的类别,我将选择为13的元素,然后显示一直到它并用某种颜色标记它。

链接的构建方式如下:

<a class="13" href="category.php?cid=13">בלוקים ודפדפות</a>

我的页面上有一个元素,其中包含我正在查看的ID:

<input type="hidden" value="13" id="cid">

这是我尝试过的代码:

var until = document.getElementsByClassName('depth-two');
$("."+$("#cid").val()).prevUntil(until,"ul").show();

$("."+$("#cid").val()).prevAll("ul").show();

不幸的是,它根本不起作用。

还有其他想法吗?

2 个答案:

答案 0 :(得分:2)

我觉得你差不多了。试试这个:

$("."+$("#cid").val()).parents("ul").show();

jQuery.prevAll匹配所有兄弟姐妹,但您希望与父母匹配。

同级

兄弟姐妹是另一个元素的next。例如:

<div>
    <p>Sibling 1</p>
    <p>Sibling 2</p>
</div>

Sibling1和Sibling 2是彼此的兄弟姐妹。他们共享同一个父母。他们都是同一父母的孩子。

但是你想搜索父母。

<ul id="A">
    <li id="AA">
        <ul id="AAA">
            <li id="AAAA"></li>
            <li id="AAAB"></li>
        </ul>
    </li>
    <li id="AB">
        <ul id="ABA">
            <li id="ABAA"></li>
            <li id="ABAB"></li>
        </ul>
    </li>
</ul>

参考上面的示例,有一个带有id="A"的单个顶级父元素。我们将通过id

来引用元素
  • 元素AA有兄弟AB和父A
  • 元素AB有兄弟AA和父A
  • 元素AAA包含父AA和祖父母A
  • 元素ABA包含父AB和祖父母A
  • 元素ABAA有兄弟ABAB,父[{1}},祖父母ABA和曾祖父母AB
  • 元素A有兄弟ABAB,父[{1}},祖父母ABAA和曾祖父母ABA

答案 1 :(得分:1)

我认为代替prevUntilprevAll(选择兄弟姐妹)而不是parents method

$(liselector).parents('ul').slideDown().prev('.do').text('-');

(见updated demo