javascript - 在一种方法中调用 JQuery 的 html() 函数两次不起作用
问题描述
我的目标是在单击按钮时替换两个表格行的内容。我尝试使用 JQuery 的html 函数,但我似乎无法在同一个方法调用中调用该函数两次。我在jsFiddle中测试了以下内容中测试了以下内容:
HTML:
<table>
<tr>
<td class='textToReplace'>I want to be replaced with an input!</td>
<td class='theButton'><input type="button" id="test" value="make editable"/></td>
</tr>
</table>
查询:
$(document).on('click', "#test", function(e) {
$(e.target).closest("td").html('<input type="button" value="cancel edit"/>');
$(e.target).closest("tr").find('td.textToReplace').html('<input type="text" value="I am now editable!"/>');
});
请注意,在实践中,我正在使用的表将是未知数量的行,这就是我使用类和 jquery 选择器来钻取 dom 的原因。该方法的任一行单独工作都可以正常工作,但在尝试调用两者时,它只会执行第一行。调用 .html() 是否有限制,或者我只是错过了什么?
解决方案
调用.html()
用从 HTML 解析的新元素替换整个 DOM 子树。
这意味着旧的子树,包括e.target
,不再在文档中并且没有这样的祖先。
推荐阅读
- keras - keras 如何解决这些问题的相关任务?
- scikit-learn - FastText:无法获得 cross_validation
- visual-studio-code - 如何在 VS Code 中的同一文件的其他拆分选项卡中打开“转到定义”?
- google-cloud-platform - 如何在不关闭服务的情况下对存储桶进行快照?
- php - laravel 项目的 Nginx 设置,该项目的路由以“.php”结尾
- javascript - 更改文本区域的值,使其反应道具“值”发生变化
- shell - 意外标记“完成”附近的语法错误 - Shell 脚本
- java - 如何从辅助类调用方法?
- php - PHP - PHPSESSID 欺骗
- thread-safety - 将 Observables 合并到一个 Observable 时是 Observable doOnNext 线程安全的吗