我有一张动态表:
<table>
<tbody>
<tr>
<td>1</td>
<td contenteditable='true'>Value1</td>
</tr>
<tr>
<td>2</td>
<td contenteditable='true'>Value2</td>
</tr>
</tbody>
</table>
我想在用户完成(blur)
$('table td').focus(function () {
console.log("focus ");
console.log("echo each input "); // show every carac inputed
});
$('table td').blur(function () {
console.log("blur ");
console.log("echo the new value"); // show the new value
});
所以我的问题是如何在blur
事件中获取新值,以及我如何准确地修改td
。{/ p>
答案 0 :(得分:3)
如果您想要显示每个字符,请使用 input
而不是 focus
。
您可以使用$(this).text()
或$(this).html()
获取td中的值。
希望这有帮助。
$('table td').on('input', function () {
console.log($(this).text());
});
$('table td').on('blur', function () {
console.log("blur new value : "+$(this).text());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>1</td>
<td contenteditable='true'>Value1</td>
</tr>
<tr>
<td>2</td>
<td contenteditable='true'>Value2</td>
</tr>
</tbody>
</table>
&#13;
答案 1 :(得分:1)
所以我的问题是如何在模糊事件中获得新值
使用html
方法。 (或text
,如果您不想要标记。)它不是值,它是新内容。 (td
元素没有值。)
以及我如何确切地获得哪个td被修改
this
事件回调中的blur
。
所以:
$('table td').blur(function () {
var newContent = $(this).html();
// ...
});
附注:由于td
元素在表格之外无效,因此$('table td')
与$('td')
相同。
答案 2 :(得分:1)
使用text()
功能,如下所示。
$('table td').blur(function () {
console.log($(this).text());
});
答案 3 :(得分:1)
$('table td').focusout(function(){
alert($(this).text());
});
当元素(或其中的任何元素)失去焦点时,会发生焦点事件。 focusout()方法附加一个函数,以便在元素上发生focusout事件或其中的任何元素时运行。
答案 4 :(得分:1)
您可以使用jQuery text
或html
函数访问td
的内容(它没有值!), 例如:$(this).text()
或$(this).html()
:
$(function() {
$('table td').focus(function() {
console.log("focus ");
console.log("echo each input "); // show every carac inputed
});
$('table td').blur(function() {
console.log("blur ");
console.log("echo the new value: " + $(this).text()); // show the new value
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>1</td>
<td contenteditable='true'>Value1</td>
</tr>
<tr>
<td>2</td>
<td contenteditable='true'>Value2</td>
</tr>
</tbody>
</table>
&#13;
答案 5 :(得分:1)
使用$(this).text();
$('table td').blur(function(){
alert($(this).text());
});
答案 6 :(得分:0)
你应该使用 keyup 而不是焦点来获取每个字母,如果你使用 keypress 而不是 keyup 想得到合适的信件。
选中 fiddle 。
function runMe() {
var startTime= (new Date()).getTime();
saveEmails();
var startRow = ScriptProperties.getProperty("start_row");
for(var ii = startRow; ii <= size; ii++) {
var currTime = (new Date()).getTime();
if(currTime - startTime >= MAX_RUNNING_TIME) {
ScriptProperties.setProperty("start_row", ii)
ScriptApp.newTrigger("runMe")
.timeBased()
.at(new Date(currTime+300000))
.create();
break;
} else {
saveEmails();
}
}
//do some more work here
}
$(function(){
$('table td').keypress(function(e){
var singleChar=String.fromCharCode(e.keyCode)
console.log("focus ");
console.log(singleChar); // show every carac inputed
});
$('table td').blur(function(){
console.log("blur ");
console.log($(this).text()); // show the new value
});
});