通过javascript获取td jstl值

时间:2015-02-01 19:15:31

标签: javascript jquery html

我想获得td的值并将其打印到文本框但是td具有jstl值,因此它获得了arraylist中的第一个值但是我想在用户单击时获取td中的当前值。 任何人都可以帮助我,我该怎么做?

  $(document).ready(function() {
  $("div.contacts table td").live('click', function() {
    document.getElementById("contactName").value=
         document.getElementById("contactId").innerHTML;
  });
});

输入文字和td

 <input type="text" id="contactName">

 <td id="contactId">{{contact.email}}</td>

2 个答案:

答案 0 :(得分:4)

您必须获取所点击元素的HTML,即this

$(document).ready(function() {
  $("div.contacts table td").live('click', function() {
     $("#contactName").val($(this).text());
  });
});

请注意,不推荐使用live()方法。您应该使用on代替。


演示,使用on

&#13;
&#13;
$(document).ready(function() {
  $("div.contacts").on('click', "table td", function() {
    $("#contactName").val($(this).text());
  });
});
&#13;
td {
  cursor: pointer;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="contactName">
<div class="contacts">
  <table>
    <thead>
      <tr>
        <th>Name</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Alice</td>
      </tr>
      <tr>
        <td>Bob</td>
      </tr>
      <tr>
        <td>Carol</td>
      </tr>
    </tbody>
  </table>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您正在以相反的方式使用您的代码:

document.getElementById("contactName").value=
         document.getElementById("contactId").innerHTML;

应该是:

     document.getElementById("contactId").innerHTML=
         document.getElementById("contactName").value;