如果单击,则将href文本添加到链接

时间:2015-04-18 18:26:36

标签: javascript jquery html hyperlink href

我有一个包含多个链接的页面。某些链接指向相同的URL。我想在单击其中一个重复链接时将文本(可链接的href文本)添加到单击(或悬停?)的链接。

到目前为止,我似乎只能添加第一个链接的文本而不是我点击的文本。

我已经尝试了一些东西,但我仍在学习JavaScript(我羡慕你们所有人),我担心我会越来越努力地把它搞得一团糟。我知道我可能不得不使用悬停或以某种方式改变getElementsByTagName("a")[0]...任何帮助将不胜感激!

<p>
<a href="http://www.1.com" target="_blank">dog</a>
<a href="http://www.2.com" target="_blank">cat</a>
<a href="http://www.3.com" target="_blank">bird</a>
<a href="http://www.3.com" target="_blank">frog</a>
</p>

使用Javascript:

$var anchors = document.querySelectorAll('a[href$="http://www.3.com"]');
Array.prototype.forEach.call(anchors, function (element, index) {
    element.href = document.getElementsByTagName("a")[0].innerHTML;
});

示例 当我点击链接&#34; dog&#34;时,我想打开一个新的浏览器标签/窗口,其网址为&#34; http://www.1.com&#34;

当我点击链接&#34; cat&#34;时,我想打开一个新的浏览器标签/窗口,其网址为&#34; http://www.2.com&#34;

当我点击链接&#34; bird&#34;时,我想打开一个新的浏览器标签/窗口,其网址为&#34; bird&#34;

当我点击链接&#34; frog&#34;时,我想打开一个新的浏览器标签/窗口,其网址为&#34; frog&#34;

所有包含&#34; http://www.3.com&#34;的链接因为href会忽略&#34; http://www.3.com&#34;而是打开一个新的浏览器选项卡/窗口,其中包含刚刚单击的文本。

另外,我无法在链接/ HTML中添加ID,类,脚本等,因此我必须弄清楚如何将所有这些作为JS引用href而不是HTML内部。

3 个答案:

答案 0 :(得分:2)

试试这样:

<a href="" onClick="javascript:this.innerHTML = 'ChangedClickMe'">ClickMe</a>

<强> JSFIDDLE DEMO

答案 1 :(得分:0)

不确定这是否正是您所要求的,但THIS DEMO是一个示例,我将href并将其附加到文本中。

HTML

<a href='#' onclick='change(this)'>link one</a>
<a href='#' onclick='change(this)'>link two</a>
<a href='#' onclick='change(this)'>link three</a>
<a href='#' onclick='change(this)'>link four</a>

CSS

a {
    float: left;
    clear: both;
}

的javascript

function change(variable) {
    variable.innerHTML = variable.innerHTML + variable.href;
}

答案 2 :(得分:0)

我的一位同事找到了解决方案。感谢大家的帮助。

选项1:

替换原来的JS部分:

&#34; document.getElementsByTagName(&#34;&#34;)[0] .innerHTML &#34;

使用:

&#34; window.location的&#34;

或者

选项2: jsfiddle

替换我原来的所有JS:

$var anchors = document.querySelectorAll('a[href$="http://www.3.com"]');
Array.prototype.forEach.call(anchors, function (element, index) {
element.href = document.getElementsByTagName("a")[0].innerHTML;
});

使用:

var anchors = $('a[href$="http://www.3.com"]');
$.each(anchors, function (index, element) {
$(element).attr('href',$(element).text());
});