选择锚标记的祖父母列表

时间:2014-08-28 06:17:02

标签: jquery

我想强调特定的锚标记&#39;祖父母列表(<li>)。我正在使用window.location.href来选择特定的锚标记。但我不知道如何突出特定的锚标记&#39;祖父母li

HTML

<ul id="dc_jqaccordion_widget-3-item">

    <li><a></a></li>
    <li>/*want to highlight this*/
        <ul>
            <li>
                <a href="something"></a>
            </li>
        </ul>
    </li>
</ul>

的jQuery

jQuery("#dc_jqaccordion_widget-3-item ul li ul li a").each(function(){

    if(jQuery(this).attr('href') == window.location.href){          
        jQuery(this).css("background-Color", "#FEDFB5");
        jQuery(this).parents("ul").find('#dc_jqaccordion_widget-3-item ul li a').css( "background-color", "red" );
    }

 });

以上代码会影响ul中的所有锚标签吗?需要帮助

3 个答案:

答案 0 :(得分:0)

以下是一个工作示例:http://jsfiddle.net/m1r7ybwk/1/

首先将您的HTML更改为:

<ul id="dc_jqaccordion_widget-3-item">
  <li><a></a></li>
  <li class="level-1"><span>/*want to highlight this*/</span>
    <ul>
      <li> <a href="something">asdf</a></li>
    </ul>
  </li>
</ul>

然后在你的css中添加:

li.highlight span {
  display: inline-block;
  background-color: red;
}

和你的javascript:

jQuery("#dc_jqaccordion_widget-3-item li ul li a").each(function () {
  if (jQuery(this).attr('href') == 'something') { // for debugging window.location.href){          
    jQuery(this).css("background-Color", "#FEDFB5");
    jQuery(this).closest('li[class^="level-1"]').addClass('highlight');
  }
});

按需工作。

或者你可以使用parent函数:

jQuery(this).parents('li[class^="level-1"]').addClass('highlight');

答案 1 :(得分:0)

尝试使用此代码时,您使用了错误的选择器ul#dc_jqaccordion_widget-3-item,因为ulid所以请先使用空格和元素,然后将parents()目标用于parents()所有内容parent() 1}}使用jQuery("ul#dc_jqaccordion_widget-3-item > li > ul > li a").each(function(){ if(jQuery(this).attr('href') == window.location.href){ jQuery(this).css("background-Color", "#FEDFB5"); jQuery(this).parent().parent().parent().css( "background-color", "pink" ); } }); 函数

{{1}}

DEMO LINK

答案 2 :(得分:0)

我认为这就是你想要的:

LINK

$("#dc_jqaccordion_widget-3-item a").each(function(){
    if($(this).attr("href") == "something"){
       $(this).closest("ul").closest("li").css({"background-color":"red"});
    }
});