2015-07-20 51 views
-1

我是JavaScript新手。 我想在点击链接时在网页上打印链接的名称。使用javascript打印链接名称

我的尝试是:

<!DOCTYPE html> 
<html> 
<body> 

<a href="#Foo" id="link1" onclick="myFunction()">Click me</a>; 
<BR> 
<a href="#Foo1" id="link2" onclick="myFunction1()">Click me1</a> 
<p id="demo"></p> 
<script> 
function myFunction() { 
    var t = document.getElementById('#link1').href ;  document.getElementById("demo").innerHTML =t; 
} 
function myFunction1() { 
    var t1 = document.getElementById('#link2').href 
    document.getElementById("demo").innerHTML = t1; 
} 
</script> 

</body> 
</html> 

代替打招呼和世界你好,我想打印链接的名称。 请帮帮我。

+0

你是什么意思的名字? – nikhil

+0

你是什么意思的链接的名称?名称属性或链接的innerHTML – vinayakj

+0

你使用jQuery吗?你似乎在这里有一些jQuery。 – jdu

回答

-1

只是

document.getElementById("demo").innerHTML = t; 

而且取代

document.getElementById("demo").innerHTML ="hello"; 

避免使用内联事件处理程序绑定事件。 '

<body> 
    <a href="#Foo" id="link1">Click me</a>; 
    <BR> 
    <a href="#Foo1" id="link2">Click me1</a> 
    <p id="demo"></p> 
    <script> 
     $('a').on('click', function(e) { 
      e.preventDefault; // prevents the default action 
      var linkText = $(this).text(); 

      $('#demo').text(linkText); // jQuery way 
      document.getElementById("demo").innerHTML = linkText; // Vanilla JS 
     }); 
</script> 
</body> 

另外,如果将整个JS解压缩到一个单独的文件中,并在脚本标记中进行引用,会更好。

+0

尝试过但它不打印任何内容 – user299662

+0

将文本设置为已存在的相同文本。 –

+0

@Sushanth:尝试过,但没有打印任何东西。 – user299662

-1

问题#1 您正在使用文本,而不是href属性。 如果这是故意的,你的代码工作,从我可以告诉

document.getElementById("demo").innerHTML = document.getElementById('link1').innerHTML; 

问题2 你正在一个变量存储值,而不是使用的价值预期。 这是您的代码更可能的问题。由于值只使用一次,我也只是直接使用,而不是将其存储

document.getElementById("demo").innerHTML = document.getElementById('link1').href; 

我也去掉了不必要的jquery和变量存储用于一行的功能

作为最后的音符值,在函数的末尾添加返回false将阻止链接尝试重定向。

+0

请解释downvote –

+0

我加入了建议的更改,但它不打印任何内容。已在 – user299662

+0

以上的代码中编辑,这是因为您将哈希标记留在了ID字符串中 –

-1

假设你要画的锚文本,请更新您的代码如下

function myFunction() { 
    document.getElementById("demo").innerHTML = document.getElementById("link1").innerHTML; 
} 

function myFunction1() { 
    document.getElementById("demo").innerHTML = document.getElementById("link2").innerHTML; 
} 

改进

可以在函数调用传递this,可以有1功能

标记

<a href="#Foo" id="link1" onclick="myFunction(this)">Click me</a>; 
<BR> 
<a href="#Foo1" id="link2" onclick="myFunction(this)">Click me1</a> 

脚本

function myFunction(element) { 
    document.getElementById("demo").innerHTML = element.innerHTML; 
} 

仅供参考 - http://plnkr.co/edit/C3qN5LCpOI11jwcvx9CD?p=preview

+0

没有使用它打印。 – user299662

+0

我们可以建议他的jQuery由于他是新来这个 –

+0

也是你的代码不能正常工作 –

0

而是创建多个功能,你可以使用jQuery。

$(document).ready(function(){ 
 
$('a').on('click', function(){ 
 
    $('#demo').html($(this).html()); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#Foo" id="link1" >Click me</a>; 
 
<BR> 
 
<a href="#Foo1" id="link2">Click me1</a> 
 
<p id="demo"></p>

+1

OP尚未标记jQuery。除非澄清,否则我们不应该使用jQuery。 – nikhil

+0

当我点击链接时,链接名称不会被打印。请帮忙。 – user299662

+0

你想得到哪个名字?你想要“点击我”文本? –

0

如果您已经使用jQuery,你可能会更好利用的点击,而不是一个内联方法调用jQuery的事件,让你做你的电话“低调”( https://en.wikipedia.org/wiki/Unobtrusive_JavaScript)。类似这样的:

<a href="#Foo" id="link1">Click me</a> 
<a href="#Foo1" id="link2">Click me1</a> 
<p id="demo"></p> 
$(document).ready(function(){ 
$('a').click(function(){ 
    $('#demo').text($(this).html()); 
}); 
});