突出显示锚点目标元素中的元素?

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

标签: javascript jquery css anchor

我目前正在使用以下内容尝试突出显示锚点的目标元素内的元素(div.box)(例如,#help部分)。锚点用于滚动到#help,但我只需要突出显示#help中的div.box。

$(document).ready(function() {

$(".box").removeClass("highlightTarget");
var myLocation = document.location.hash.replace("#","");
if (myLocation) {
    document.getElementById(myLocation).className = "highlightTarget";
}

$("a").click(function () {
    $(".box").removeClass("highlightTarget");
    var clickedLink = this.href.split("#");
    if (clickedLink.length > 1) {
        document.getElementById(clickedLink[1]).className = "highlightTarget";
    }
});

});

与css一起:

.highlightTarget {background:red}

目前,我的代码更改了#help red部分的背景。我做错了什么?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您所使用的是目标元素中的.box元素,因此您需要在目标元素中使用.find()来查找.box元素。

$("a").click(function () {
    $(".box").removeClass("highlightTarget");
    var clickedLink = this.href.split("#");
    if (clickedLink.length > 1) {
        $('#' + clickedLink[1]).find('.box').addClass("highlightTarget")
    }
});

答案 1 :(得分:0)

$(".box").removeClass("highlightTarget");
var myLocation = document.location.hash.replace("#","");
if (myLocation) {
    document.getElementById(myLocation).className = "highlightTarget";
}

$("a").click(function () {
    $(".box").removeClass("highlightTarget");
    var clickedLink = this.href.split("#");
    if (clickedLink.length > 1) {
        $('#' + clickedLink[1]).find('.box').addClass('highlightTarget');
    }
});