0

如何将 div 的 onClick href 设置为我的父锚点 href 值?

<a href="getThisLink.html" target="_parent">
    <img src="images/1.jpg" />
    <span>
    <div onclick="parent.location.href='**Link me with my anchor parent**' + 'params1';" >
           <span>Words Words Words</span>
    </div>            
</span>
</a>

注意我在幻灯片中使用它。

4

2 回答 2

2

下面的函数updateHref()接受一个div元素并查找它的父标签。并且()如果它是一个锚(<a>)标签:

  • onclickdiv会将页面带到's href<a>urlParams 。
  • <a>href 现在将使用其旧url 和 urlParams

演示链接在这里。下面的代码:

function updateHref(divElement, urlParams) {
    var parentAnchor = divElement.parentNode.parentNode;
    if (parentAnchor.nodeName != "A") return;
    var url = parentAnchor.href + urlParams;
    divElement.onclick = function() {
        parent.location.href = url;
    }
    parentAnchor.href = url; // override parent anchor href URL
}

用法:

// for a specific div
var myDiv = document.getElementById('myDiv');
updateHref(myDiv, "search?p=param1");

// for all divs of the page (whose parent's parent is an anchor tag)
var divs = document.getElementsByTagName("div");
for(var i = 0; i < divs.length; i++){
    updateHref(divs[i], "search?p=param1");    
}
于 2013-06-13T01:18:46.523 回答
0

您的代码无效,但是,这是工作脚本:

<a href="getThisLink.html" target="_parent">
    <img src="images/1.jpg" />
    <span>
        <div onclick="location.href = this.parentNode.parentNode.href + '#param1'; return false;">
            <span>Words Words Words</span>
        </div>
    </span>
</a>
于 2013-06-13T01:26:43.433 回答