如何使用jQuery检索锚标记的innerHTML?

时间:2016-04-11 17:28:09

标签: jquery html twitter-bootstrap

我有一个像这样的Bootstrap表,

<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>

  <table class="table table-striped table-bordered">
    <tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
    <tr><td><a class="cl" href="" onclick="call()">Mickey</a></td><td>Mouse</td><td>5</td>
    <tr><td><a class="cl" href="" onclick="call()">Tom</a></td><td>Cat</td><td>6</td>
    <tr><td><a class="cl" href="" onclick="call()">Pooh</a></td><td>Bear</td><td>4</td>
    <tr><td><a class="cl" href="" onclick="call()">Donald</a></td><td>Duck</td><td>7</td>
    <tr><td><a class="cl" href="" onclick="call()">Jerry</a></td><td>Mouse</td><td>8</td>
  </table


  <br /><br />  
    <div id="output"></div>



  <script>
    $('.cl').click(function() {

      var t = $(this).text();

      $('#output').html(t);

    });
  </script>

</body>
</html>

firstname列包含超链接。当用户单击任何firstnames时,该值应返回到输出<div>,而不进行任何页面重定向。

我在控制台中收到此错误,

"ReferenceError: call is not defined
    at HTMLAnchorElement.onclick (http://null.jsbin.com/runner:1:993)"

我在这里做错了什么?

这是我到目前为止所做的事情的链接 - http://jsbin.com/loqikixesa/edit?html,console,output

3 个答案:

答案 0 :(得分:1)

我相信你想要这个(使用文字而不是val):

 var t = $(this).text();

答案 1 :(得分:1)

只需阻止anchor代码的默认操作,并使用.text()代替.val()

$('.cl').click(function(e) {
  e.preventDefault();
  $('#output').html($(this).text());
});

DEMO

同时删除这些元素的内联处理程序。这将产生冲突。

答案 2 :(得分:0)

你只做这个

$('.cl').click(function() {
  var t = $(this).text();
  $('#output').append(t);
});

如果您现在可以使用val或文本检查此Difference between val() and text()