2

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

一张图片来演示我的导航器:

在此处输入图像描述

忽略“奇怪的字符”,这是我的语言。

这是它如何构建的代码示例: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();

不幸的是,它根本没有用。

还有其他想法吗?

4

2 回答 2

2

我想你几乎拥有它。试试这个:

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

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

兄弟

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

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

兄弟姐妹 1 和兄弟姐妹 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有 parentAA和 grandparent A
  • 元素ABA有 parentAB和 grandparent A
  • 元素ABAA有兄弟姐妹ABAB、父母ABA、祖父母AB和曾祖父母A
  • 元素ABAB有兄弟姐妹ABAA、父母ABA、祖父母AB和曾祖父母A
于 2013-09-11T20:33:20.357 回答
1

我认为您正在寻找方法而不是prevUntilor (选择兄弟姐妹) :prevAllparents

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

(见更新的演示

于 2013-09-11T20:47:42.863 回答