使用.html()添加文本输入时出现意外行为
unexpected behavior when adding a text input with .html()
我有一个带有div的页面,如果点击它,就会出现一个文本输入框。
这里有一个最小代码:
<html>
<head>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="d1">a</div>
</body>
</html>
<script type="text/javascript">
$(document).ready( function(){
$( document ).on( "click", "#d1", function( e ){
$( this ).html( "<input type='text'>" );
} );
} );
</script>
问题是,尽管出现了文本输入框,但没有显示任何字符。
但是,如果我使用:
$( this ).replaceWith( "<input type='text'>" );
它按预期工作。
此外,如果我将html添加到另一个元素(例如),它也可以正常工作
$("#some_other_element").html( "<input type='text'>" );
这是个bug还是我遗漏了什么?
感谢
更改为:
$( this ).html("<input type='text' value='"+$(this).text().trim()+"'>");
$(document).ready( function(){
$( document ).on( "click.yourEventName", "#d1", function( e ){
var $this = $(this);
var text = $this.text();
$this.html( $("<input>", {type: "text"}).val(text) );
$(document).off(".yourEventName");
} );
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<html>
<head>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="d1">a</div>
</body>
</html>
相关文章:
- 使用ajax的输入jquery意外结束
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- jQuery Ajax+经典ASP返回错误'意外的输入结束'
- 使用.html()添加文本输入时出现意外行为
- 基于给出意外结果的提示输入的逻辑
- 清除输入字段值-STCombobox时出现意外的JS行为
- `同构的fetch`response.json()方法总是抛出意外的输入结束错误
- js文件的第1行出现意外的输入结束错误
- 未捕获的语法错误:输入JavaScript意外结束
- 输入标记的意外标识符
- 未捕获语法异常:第1行输入意外结束
- 节点.js未定义:1 [语法错误:输入意外结束]
- Ajax 调用返回语法错误:输入意外结束
- 从内部HTML更改为表单时获得意外结果,输入类型文本字段
- 谷歌浏览器:语法错误:输入意外结束
- 意外的输入结束 - 快速/节点应用程序上的 curl JSON
- 未捕获的语法错误:输入时刻意外结束.min.js:7
- 带有 JavaScript 异常的 ajax:意外的输入结束
- 运行 AJAX 异步时文档类型标记的“意外输入结束”,但在同步时则不然
- 当将代码作为单独的函数移动时,在末尾出现意外输入