我想获得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>
答案 0 :(得分:4)
您必须获取所点击元素的HTML,即this
:
$(document).ready(function() {
$("div.contacts table td").live('click', function() {
$("#contactName").val($(this).text());
});
});
请注意,不推荐使用live()
方法。您应该使用on
代替。
演示,使用on
:
$(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;
答案 1 :(得分:1)
您正在以相反的方式使用您的代码:
document.getElementById("contactName").value=
document.getElementById("contactId").innerHTML;
应该是:
document.getElementById("contactId").innerHTML=
document.getElementById("contactName").value;